PHP - POST后会删除会话变量

时间:2017-06-03 07:06:29

标签: php session post

我有这个问题:我有一个HTML表单,用于添加一些字段的新用户;更重要的是尼克和密码。当我填写字段时,我提交并且一切正常(新用户也出现在数据库中)。

然而,在那之后,我丢失了我的SESSION变量。我知道,因为我在每个页面的第一个时间打电话给他们,以了解是否记录了正确的用户。我认为错误是由nick和密码字段产生的。是否有可能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 vars不起作用。我有$ _SESSION [&#39;登录&#39;],$ _SESSION [&#39;密码&#39;]等等,它们是通过登录创建的。但是,在添加新用户之后,他们就消失了。

我打印了session_vars,我确认他们在POST后消失了。

----------------------------------------------- -----

好的,我解决了。这是用户权限comprobation的错误。毕竟代码很好(至少这部分)。无论如何,谢谢大家。

1 个答案:

答案 0 :(得分:0)

  

html Page1.php

<input type="text" name="user" required />
<input type="password" name="pass" required />
<input type="submit" name="add_user" />
  

PHP

// Start the session
session_start();

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["user"] =  $nick;
$_SESSION["pass"] = $password;

注意: Page2.php

现在,您可以在每个页面上使用会话,只需在PHP代码的顶部添加第一个:

    session_start();  

echo $_SESSION["user"];
echo $_SESSION["pass"];