【问题标题】:How to use $_SESSION to pass on values from multiple pages and $_POST together如何使用 $_SESSION 将多个页面的值和 $_POST 一起传递
【发布时间】:2017-06-03 14:52:05
【问题描述】:

我在不同页面上有一系列表单,我想在所有页面上临时存储值,并在填写完所有表单后邮寄它们。

显然 $_SESSION 是最好的方法???这是我得到的:

index.php

<!DOCTYPE html>
<html>
<head>
    <title>Whats your name?</title>
</head>
<body>
    <form action="two.php" method="post">
        Fav color:<br>
        <input name="color" type="text" value="blue"><br>
        Fav sport:<br>
        <input name="sport" type="text" value="soccer"><br>
        <br>
        <input type="submit" value="Next">
    </form>
</body>
</html>

两个.php

<!DOCTYPE html>
<html>
<head>
    <title>Where do you live?</title>
</head>
<body>
    <form action="post.php" method="post">
        Shoe size:<br>
        <input name="size" type="text" value="4"><br>
        left or right handed?:<br>
        <input name="hand" type="text" value="left"><br>
        <br>
        <input type="submit" value="Next">
    </form>
</body>
</html>

post.php

<?php

$to  = "myemail@host.com";
$sub = "Testing session out";

mail($to, $sub, $message);

header('Location: finish.php');

?> 

完成.php

<!DOCTYPE html>
<html>
<head>
<title>Thanks</title>
<meta http-equiv="refresh" content="2; URL='http://new-website.com' " />
</head>

<body>
<p>All done, thanks</p>
</body>

</html> 

我希望“post.php”一次性将所有值邮寄到我的电子邮件中,例如

$message = $_POST['color'];
$message .= $_POST['sport'];
$message .= $_POST['size'];
$message .= $_POST['hand'];

【问题讨论】:

  • 这里有一个超出范围的问题。
  • “显然 $_SESSION 是最好的方法?” - 是的。但是,您可以在没有会话的情况下执行此操作,只需以一种形式使用所有输入。
  • 第 2 页您将帖子值存储在第 1 页的会话中。在发布您的会话值(p1)和发布值(p2)以发送电子邮件
  • 不要为“谢谢大家”和所有那些友好的东西而烦恼。没关系。我们遍布世界各地,彼此不认识。我们都只是在帮助人们并使网站变得更好。数以百万计的问题。每次都没有时间嗨和你好。没有冒犯,也没有任何私人的 - 对你来说,或者来自你:-)
  • 注明@clearlight

标签: javascript php jquery html session


【解决方案1】:

只需将$_POST 添加到$_SESSION

<?php

$_SESSION['firstname']  = $_POST['firstname'];
$_SESSION['lastname']  = $_POST['lastname'];

?> 

但是在“post.php”中你不能用post调用firstname和lastname,

$message = $_SESSION['firstname'];
$message .= $_SESSION['lastname'];
$message .= $_POST['door'];
$message .= $_POST['zip'];

别忘了在脚本开头使用session_start

或者您可以再次添加到标签input,而不在表单中添加$_SESSION

<input name="firstname" type="hidden" value="<?php echo $_POST['firstname']; ?>" />
<input name="lastname" type="hidden" value="<?php echo $_POST['lastname']; ?>" />

【讨论】:

  • 我不能说 $_POST ['firstname'] = $_SESSION['firstname']; ?
  • 我可以从哪个页面开始 session_start?
  • 不要这样做,这样做没有意义$_POST['firstname'] = $_SESSION['firstname'] 在 two.php 和 post.php 中使用 session_start,因为只有那个页面会使用 $_SESSION。
猜你喜欢
  • 2016-07-18
  • 2018-02-03
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 2011-11-08
  • 2016-05-06
相关资源
最近更新 更多