我是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()时,变量未被设置。为什么呢?
答案 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文件并回显该变量然后它不输出但在同一页面中输出它。解释为什么会发生这种情况?