表单中的会话变量未显示在下一页上

时间:2012-05-12 16:36:31

标签: php session

我可以设置会话变量并在另一个页面上使用它们。但是,当我尝试使用带有用户名和电子邮件地址的简单联系表单并尝试将它们存储到会话变量中时,它们不会显示在其他页面上。必须有一些我缺少的基本东西。

以下是表格:

<?php
session_start();
$submit = $_POST["submit"];
if($submit){setSessionVars();}
function setSessionVars() {
    $_SESSION['name'] = $_POST['name'];
    $_SESSION['email'] = $_POST['email'];
    header('Location: session.php');
}
?>

<html>
<body>
  <form action="session.php" method"post">
    <input name="name" type="text" value="Name" size="11" /><br />
    <input name="email" type="text" value="Email" size="11" /><br /><br />
    <input name="submit" type="submit" value="Submit" size="11" />
  </form>
</body>
</html>

这是session.php:

<?php
session_start();
echo $_SESSION['name'];
echo $_POST['name'];
?>

另外

header('Location: session.php');

无效。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

乍一看,我发现一个直接的问题会阻止表单发布。

<form action="session.php" method"post">

你需要在方法和“帖子”之间加上“=”符号。

单独更改它会在session.php中显示“t”。

答案 1 :(得分:1)

您将表单发布到session.php

<form action="session.php" method"post">

我将其更改为:

<form method="post">

这样,页面就会自行发布。然后它可以注册会话变量并将用户重定向到session.php

修改:此外,您忘记了=登录method"post"