PHP Session($ _SESSION [])正在工作甚至破坏会话

时间:2013-05-26 12:11:09

标签: php session

这是我销毁会话的代码,但它仍在工作。

<?php
 session_start();

 $_SESSION['name'] = 'Arfan';

 $_SESSION['second_name'] = 'Haider';

echo 'My full name is '.$_SESSION['name'].$_SESSION['second_name'].'<br/>';

unset($_SESSION['second_name']);// unset the second_name session

echo 'My name is '.$_SESSION['name'].$_SESSION['second_name'].'<br/>';// work fine error popup

session_destroy();// Destroy all the session

echo $_SESSION['name']; // session is working here.
?>

正如您在代码会话结束时所看到的那样,为什么还要工作?

2 个答案:

答案 0 :(得分:4)

来自docs

  

为了完全杀死会话,喜欢将用户注销掉,   会话ID也必须取消设置。如果使用cookie来传播   会话ID(默认行为),然后会话cookie必须是   删除。 setcookie()可以用于此。

Example

session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);

答案 1 :(得分:0)

使用session_destroy()后,会话cookie被删除,会话不再存储在服务器上。 $_SESSION中的值可能仍然可用,但它们不会出现在下一页加载中。

如果要完全清除会话,可以使用:

session_start();
session_destroy();
$_SESSION = array();