提问者:小点点

注销/销毁会话时出现问题


我有麻烦破坏我的会话在一个小测试侧,我做了。

我可以从我的code_login.php文件登录,并在头()到我的另一个页面,在那里需要登录。但是当我注销时,有时即使我注销了,也可以回到那个页面。

(会话_start()位于我所有页面的顶部)

这是我的登录代码:

$res = $db->query($sql);
$num = $res->num_rows;

if ($num == 1) {
    $_SESSION['user'] = array(
        'username' => $username;
    );
}

这是注销:

session_start();
$_SESSION = array();
session_destroy();
header('LOCATION: index.php?loggedOut');

这是我需要登录的页面顶部

session_start();
if (isset($_SESSION['user'])) {
    require some stuff;
} else {
    header('LOCATION: index.php?loginNeeded');
}

但有时我仍然能够在登录后返回到所需的登录页面。


共2个答案

匿名用户

会话_start();

将插入到您设置或取消设置会话的每一页上,以及用于读取会话

数据

匿名用户

添加session_start()在登录代码页顶部:

session_start();
$res = $db->query($sql);
$num = $res->num_rows;

if ($num == 1) {
    $_SESSION['user'] = array(
        'username' => $username;
    );
}