我知道这是一个业余问题,但我需要回显一个 session 变量然后销毁该变量。
我已经试过了:
if(isset($_SESSION['m'])){
echo($_SESSION['m']);
unset($_SESSION['m']);
}
我也试过 session_destroy();
并且我尝试在页面末尾取消设置/销毁 session (在关闭 HTML 标记之后)
我遇到的问题是 session 在回显之前被销毁。我之前使用上面的代码没有任何问题。无论如何我需要做的是什么,还是我必须找到不同的解决方案?
提前致谢:)
最佳答案
我知道有点晚了,但最近我遇到了这个问题,我会为任何需要它的人回答。
我很确定您使用 header
方法重定向到执行 session unset
的同一页面。沿着这些线的东西:
<?php
if(condition)
$_SESSION = "foo";
header("Location: $self");
?>
<html>
...
<?php echo $_SESSION["foo"]; unset($_SESSION["foo"]); ?>
...
header
的问题在于它不会停止脚本的执行(看起来如此),因此脚本会继续执行并取消设置 session 。
解决方案是在 header 重定向后添加 exit(0)
(或您可能需要的任何标志),如下所示:
<?php
if(condition)
$_SESSION = "foo";
header("Location: $self");
exit(0);
?>
这确实是一个非常晦涩难懂的问题,也是一个耗时的问题。
https://stackoverflow.com/questions/6563928/