Post 会话存储中的变量注销用户

Post variables in session storage logs user out

我的登录系统有问题,当人们登录并访问页面时,它工作得很好,但是一旦他们进入我的页面,我在第一行写了 $_SESSION = $_POST; 就会让用户登录自动出。

我在登录系统上设置了 cookie 过期时间,但由于某些原因,用户在访问该特定站点时会被注销。我删除了那个代码然后它工作正常。

有什么想法吗?


编辑: 我正在使用 php 登录高级系统,http://www.php-login.net/。这不是阅读代码所必需的,因为这是会话和帖子的问题。所以我只是想知道问题是什么。

使用

$_SESSION['post'] = $_POST;

以便您将 post 数据存储在 $_SESSION 的子部分中。现在你正在完全破坏你的整个会话并用 POST 数据替换那里的任何内容。

如果您想复制从 $_POST$_SESSION 的每个单独的字段,您可以使用这样的东西:

foreach ($_POST as $key => $value)
{
    $_SESSION[$key] = $value;
}
$_SESSION = array array_merge ( $_SESSION , $_POST );

如果你真的需要它http://php.net/manual/en/function.array-merge.php

但是Why does this `$_SESSION = $_POST` fail?

$_SESSION = $_POST;

无论如何都是一个坏主意,$_POST 不是保存!