这是我设置变量
的方法<?PHP
session_start();
?>
<?PHP
$user_name = $_POST['username'];
$first_name = $_POST['FirstName'];
$last_name = $_POST['LastName'];
$_SESSION['FirstName']=$first_name;
$_SESSION['LastName']=$last_name;
$_SESSION['UserName']=$user_name;
出于测试目的,我在设置Session变量之前打印出来,因此我知道我从表单中获取值。 然而,当我去另一个像这样打印出来时
<?PHP
echo $_SESSION['UserName'];
echo $_SESSION['FirstName'];
echo $_SESSION['LastName'];
它崩溃了,在评论了一些打印后我发现它只是设置用户名一个而其他人丢失了
这是我的表格
登录
用户名:
密码:
这是我提交时的地方
$user_name = $_POST["username"];
$password = $_POST["password"];
$_SESSION["UserName"]=$user_name;
$_SESSION["Password"]=$password;
然后我尝试打印
<?PHP
echo "username: "
echo $_SESSION["UserName"]; //this one works
?>
<br>
<?PHP
echo "password: "
echo $_SESSION["Password"]; //does not work
?>
我的会话变量只在这个页面的顶部声明
<?PHP
session_start();
$_SESSION["UserName"];
$_SESSION["Password"];
?>
答案 0 :(得分:4)
确保您拥有
session_start()
;在所有这些页面上 - Ghost
除了Ghost的评论之外,可能是您的表单元素不包含name属性,和/或有拼写错误或字母不匹配。
Username
和username
或Username
不一样。(PHP)变量区分大小写。
将用户名设置为1,其他人以某种方式丢失
为了详细说明我的评论,我怀疑你的表单元素都是小写的或者没有命名。
我准备打赌,如果你改变
$first_name = $_POST['FirstName']; // FirstName is not the same as firstname
$last_name = $_POST['LastName']; // LastName is not the same as lastname
到
$first_name = $_POST['firstname'];
$last_name = $_POST['lastname'];
它将开始为你工作。因为,那两个人没有通过。
但是,为了100%确定,您需要发布您的表单代码,但我接下来肯定我的答案。
您的表单应包含:
<input type="text" name="firstname">
和
<input type="text" name="lastname">
将error reporting添加到文件的顶部,如果您的系统设置未自动设置,则有助于查找错误,而这很可能是“未定义的索引...”。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告应仅在暂存时完成,而不是生产。
现在,如果仍然无效,那么你就会遇到缓存问题。
您可以使用session_destroy()
。您也可以取消设置会话,然后重新开始。
有关这些的更多信息,请访问:
http://php.net/manual/en/function.session-destroy.php
销毁注册到会话的所有数据
http://php.net/manual/en/function.session-unset.php
释放所有会话变量
修改强>
按照此操作,它将工作,测试。然后你可以在之后修改它。
第一页:
<html>
<body>
<form action="page2.php" method="post">
Username: <br><input type="text" name="username"><br>
First name: <br><input type="text" name="firstname"><br>
Last name: <br><input type="text" name="lastname"><br>
<input type="submit" name = 'submit' value= 'Login'>
</form>
</body>
</html>
<强>使page2.php 强>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
session_start();
$username = $_POST['username'];
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$_SESSION['username'] = $_POST['username'];
$_SESSION['firstname'] = $_POST['firstname'];
$_SESSION['lastname'] = $_POST['lastname'];
echo "Username: " . $_SESSION['username'] . "<br>";
echo "First name: " . $_SESSION['firstname'] . "<br>";
echo "Last name: " . $_SESSION['lastname'] . "<br>";
?>