【发布时间】:2012-10-15 02:24:33
【问题描述】:
我正在编写一个脚本,该脚本应该结束用户的会话,并将他们从系统中注销,从而将他们返回到登录页面。
我的注销脚本如下所示:
<?php
$_SESSION['signin'] = null;
session_destroy();
header("Location: /test/index.php");
?>
最初我以这种方式重置 signin 变量,即使会话没有被破坏,该变量也应该至少发生变化,以便系统认为用户已注销。
在我的登录页面顶部,如果他们已经登录,我有一个条件将它们转发到主页,这样一旦已经登录就无法访问登录页面。这部分看起来像这样:
<?php
session_start();
if($_SESSION['signin'] == 5)
{
header("Location: /test/home.php");
}
?>
简而言之,当有人登录并单击链接注销时,它会利用第一个代码块注销,然后转发到包含第二个代码块的页面。
但是,这个页面仍然让我回到主页,相信用户仍然登录,因此我猜测 signin 变量没有重置。
关于如何解决我的问题的想法?
【问题讨论】:
-
我认为,那个问题是你没有在 header(); 之后写 exit使用
var_dump; 之类的东西检查会话的值
标签: php session redirect session-variables logout