会议没有破坏

时间:2013-08-02 04:42:00

标签: php session

我的'登录'代码

$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']仍然设置。

3 个答案:

答案 0 :(得分:2)

尝试使用:

session_unset();
header("Location: log_in.php");

答案 1 :(得分:1)

来自the documentation

  

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

同一页面上的

Example #1会告诉您该做什么。

答案 2 :(得分:0)

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

foreach($_SESSION as $key => $value) {
    unset($_SESSION[$key]);
}