这就是我设置变量的方法
<?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"];
?>
只要确保你有
session_start()
;在所有这些页面上 - 幽灵
除了Ghost的评论之外,可能是表单的元素不包含name属性,和/或有拼写错误,或者字母大小写不匹配。
Username
和username
或Username
不一样。 (PHP( 变量区分大小写。
正在设置用户名一个,而其他用户名不知何故丢失
为了详细说明我的评论,我怀疑您的表单元素都是小写的或没有命名。
我准备打赌,如果你改变
$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">
将错误报告添加到文件顶部,这将有助于查找错误,如果您的系统设置未自动设置为这样做,这反过来很可能是"未定义的索引..."。
<?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>
页2.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>";
?>