为什么($ _SESSION = [];)使服务器无法处理请求?

时间:2019-02-12 04:53:05

标签: php session

我正在尝试从会话中清除变量并开始一个新的会话。通过阅读有关可变问题的信息,我认为我发现这是正确的答案:

( $_SESSION = [];)

但是,当我将该行添加到我的代码中时,在PHP代码中的一行上,我收到一条消息,指出“ [服务器]当前无法处理此请求”,指示“ HTTP错误500”。

没有该命令,该页面就可以正常工作(除了变量的行为不如我希望的那样)。但是每次我激活那条线,我都会得到错误。如何清除变量而不使服务器生气?

更新:我也尝试过session_destroy(),但效果相同。这里还有一些上下文:

<?php 
session_destroy();

session_set_cookie_params(3600,"/");
session_start();
?>

如果我注释掉session_destroy()行,则该页面加载不会有任何麻烦。但是有了这一行,我得到了错误。

针对此问题的其他人的最终更新:我已经标记了正确的答案。在取消上一个会话的变量之前,我需要启动新会话。

2 个答案:

答案 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');