用PHP销毁所有会话变量
我正试图摆脱PHP中的一堆会话变量。我的意思是完全摆脱他们 我尝试过一些不同的方法。例如:用PHP销毁所有会话变量,php,session-variables,Php,Session Variables,我正试图摆脱PHP中的一堆会话变量。我的意思是完全摆脱他们 我尝试过一些不同的方法。例如: $_SESSION = array(); session_destroy(); header('location: '.MAINPATH); 我还尝试使用会话unset、unset、setcookie等与上述命令的各种组合。 当然,我已经通过以下操作测试了会话变量是否保持不变: echo $_SESSION['member_id']; 由于som原因,我的所有会话变量仍然保留。 有人能找出问题所在吗
$_SESSION = array();
session_destroy();
header('location: '.MAINPATH);
我还尝试使用会话unset、unset、setcookie等与上述命令的各种组合。
当然,我已经通过以下操作测试了会话变量是否保持不变:
echo $_SESSION['member_id'];
由于som原因,我的所有会话变量仍然保留。
有人能找出问题所在吗
非常感谢您的帮助
FWI:我使用的是PHP5.5
更新:
我尝试将代码更改为以下内容:
echo $_SESSION['member_id'];
session_unset();
session_destroy();
echo $_SESSION['member_id'];
这导致了这个输出:
1000004通知:未定义索引:成员id在
这应该意味着会话变量已删除,对吗?奇怪的是,当我回到头版时,会话变量又可用了。您可以使用session\u unset()清除所有会话变量。您可以再试一次吗:
<?php
session_start();
$helper = array_keys($_SESSION);
foreach ($helper as $key){
unset($_SESSION[$key]);
}
?>
您可以使用以下代码:-
session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
在php标签中使用您是在页面刷新之前还是之后执行
echo$\u会话['member\u id']
?$\u会话数组将保留当前页面加载中的值,然后再保存到未设置的代码中,这将在下一个服务器请求时生效。另外,请确保在页面刷新后进入destroy functionecho$\u session['member\u id']之前已在页面上启动会话。。是的,我在上面代码之前使用了session_start()。成员在session_destroy()之前和之后的id值相同吗?是的,是相同的:pYOU'VE breaked PHP!。。。请注意,请尝试删除$\u SESSION=array()代码>行,并再次检查会话是否没有被您设置的某种缓存机制重新恢复。我创建了3个文件来测试正在破坏的会话,并且它工作正常。