0

我的“登录”代码

$query = mysql_query("SELECT * FROM trade2_users WHERE email = '".mysql_real_escape_string($_POST['email'])."' AND pass = '".mysql_real_escape_string($_POST['password'])."'");
if(mysql_num_rows($query) > 0){
$row = mysql_fetch_assoc($query);
session_start();
$_SESSION['name'] = $row['name'];
header("Location: index.php");
}

我的“注销”代码

session_start();
session_destroy();
header("Location: log_in.php");

无论出于何种原因,我的注销代码都不起作用(并没有真正破坏会话)。$_SESSION['name'] 在注销脚本运行后仍然设置。

4

3 回答 3

2

尝试使用:

session_unset();
header("Location: log_in.php");
于 2013-08-02T04:44:25.793 回答
1

文档

为了完全终止会话,例如注销用户,还必须取消设置会话 ID。如果使用 cookie 传播会话 id(默认行为),则必须删除会话 cookie。setcookie() 可以用于此。

同一页面上的示例 #1向您展示了该做什么。

于 2013-08-02T04:44:58.257 回答
0

我通常会覆盖这些值,而不是尝试删除会话。

foreach($_SESSION as $key => $value) {
    unset($_SESSION[$key]);
}
于 2013-08-02T04:59:28.893 回答