我正在尝试从会话中清除变量并开始一个新的会话。通过阅读有关可变问题的信息,我认为我发现这是正确的答案:
( $_SESSION = [];)
但是,当我将该行添加到我的代码中时,在PHP代码中的一行上,我收到一条消息,指出“ [服务器]当前无法处理此请求”,指示“ HTTP错误500”。
没有该命令,该页面就可以正常工作(除了变量的行为不如我希望的那样)。但是每次我激活那条线,我都会得到错误。如何清除变量而不使服务器生气?
更新:我也尝试过session_destroy(),但效果相同。这里还有一些上下文:
<?php
session_destroy();
session_set_cookie_params(3600,"/");
session_start();
?>
如果我注释掉session_destroy()行,则该页面加载不会有任何麻烦。但是有了这一行,我得到了错误。
针对此问题的其他人的最终更新:我已经标记了正确的答案。在取消上一个会话的变量之前,我需要启动新会话。
答案 0 :(得分:1)
您不应该在session_start()之前使用session_destroy()。试试这个:
session_start();
session_set_cookie_params(3600,"/");
session_destroy();
答案 1 :(得分:0)
要删除所有会话变量,请使用:
session_unset();
如果销毁会话后遇到问题,则您的代码可能试图访问尚未设置的会话变量。我喜欢与isset()
进行核对
例如
$myVar = "";
if (isset($_SESSION('MyVar')) $MyVar = $_SESSION('MyVar');