在会话销毁后获取会话变量

时间:2014-04-11 15:19:02

标签: php apache session

我是php的新手。即使在session_destroy()和session_unset()之后,我也无法理解会话变量的输出。这是我的简单测试代码

`session_start();
 SESSION['name']='sovon';
 session_destroy();
 session_unset($_SESSION['name']);
 echo $_SESSION['name'];

`

输出是'sovon'。我的问题是session_destroy()和session_unset()在这里做什么,它们之间有什么区别? 哦!当我删除session_destroy()时,变量未被设置。为什么呢?

3 个答案:

答案 0 :(得分:0)

如果你阅读php manual,也许会更容易。

session_destroy() 
  

session_destroy()会销毁与当前关联的所有数据   会话。它不会取消任何与之相关的全局变量   会话,或取消设置会话cookie。要使用会话变量   再一次,必须调用session_start()。

所以如果你想取消里面的数据。你必须解开它。

unset($_SESSION);

会话未设置......

session_unset()

删除所有变量并保留session_id。但是session_unset没有参数。

您搜索的是

unset($_SESSION['name']);

答案 1 :(得分:0)

我认为它是faisal,如果在其他页面中创建了session_distroy会破坏会话。如果会话变量在同一页面上创建,那么它将保留。最佳做法是在会话发现$_SESSION = NULL;

之后使会话变量为空

就像我在退出中使用一样,

session_start();
session_distory();
$_SESSION = NULL;
header('Location: Login.php');

我认为这有助于你。

答案 2 :(得分:0)

我自己找到了一个答案。当我将Session_destroy()写入另一个php文件并回显该变量然后它不输出但在同一页面中输出它。解释为什么会发生这种情况?