【发布时间】:2017-06-03 07:06:28
【问题描述】:
我有这个问题:我有一个 HTML 表单,用于添加带有一些字段的新用户;更重要的是昵称和密码。当我完成这些字段后,我提交并且一切正常(新用户也出现在数据库中)。
但是,在那之后,我丢失了我的 SESSION 变量。我知道这一点,因为我在每个页面的开头都给他们打电话,以了解是否登录了正确的用户。我认为错误是由昵称和密码字段产生的。是否有可能 PHP、Chrome 或任何将表单昵称和密码解释为登录用户昵称和密码的东西,这就是 SESSION 变量崩溃的原因?
谢谢。
编辑:有部分代码:
表格:
<input type="text" name="user" required />
<input type="password" name="pass" required />
<input type="submit" name="add_user" />
有两个输入。很简单。一个基本的表单,带有重定向到 PHP 页面的提交,它与 POST 数据一起使用:
if(isset($_POST["add_user"])){
$nick=$_POST["user"];
$password=$_POST["pass"];
$query="insert into users(nick,password)
values('$nick','$password')";
$result=mysqli_query($conexion,$query);}
之后,SESSION 变量就不能工作了。我有 $_SESSION['login']、$_SESSION['password'] 等等,它们是使用登录名创建的。但是,添加新用户后,它们就消失了。
我打印了我的 session_vars,并确认它们在 POST 后消失了。
----------------------------------------------- -----
好的,我解决了。这是用户权限审查的错误。毕竟,代码很好(至少这部分)。无论如何,谢谢大家。
【问题讨论】:
-
你能发布一些代码来重现这个问题吗?
-
检查您设置这些值的位置并(如果可能)设置一个调试点,或者至少生成一些输出以查看它何时被实际调用以及使用什么。尝试添加
print_r($_SESSION);以查看保存的值。 -
session_start(); ...在之前的每一页上
-
你说
SESSION['login']- 你在使用$_SESSION['login']不是吗! -
我在所有这些页面上都有 session_start()。我正在使用 $_SESSION,不用担心。