Php 为什么($_SESSION=[];)使服务器无法处理请求?
我正在尝试清除会话中的变量并开始一个新的会话。通过阅读有关变量问题的内容,我认为我发现这是正确的答案:Php 为什么($_SESSION=[];)使服务器无法处理请求?,php,session,Php,Session,我正在尝试清除会话中的变量并开始一个新的会话。通过阅读有关变量问题的内容,我认为我发现这是正确的答案: ( $_SESSION = [];) 但是当我将这一行添加到我的代码中,在PHP代码中的一行中,我得到一条消息“[服务器]当前无法处理此请求”,指示“HTTP错误500” 如果没有这个命令,页面就可以正常工作(除了变量的行为不符合我的要求)。但是每次我激活那条线,我都会得到错误。如何在不激怒服务器的情况下清除变量 更新:我也尝试了session_destroy(),但效果相同。这里有更多的上
( $_SESSION = [];)
但是当我将这一行添加到我的代码中,在PHP代码中的一行中,我得到一条消息“[服务器]当前无法处理此请求”,指示“HTTP错误500”
如果没有这个命令,页面就可以正常工作(除了变量的行为不符合我的要求)。但是每次我激活那条线,我都会得到错误。如何在不激怒服务器的情况下清除变量
更新:我也尝试了session_destroy(),但效果相同。这里有更多的上下文:
<?php
session_destroy();
session_set_cookie_params(3600,"/");
session_start();
?>
如果我注释掉session_destroy()行,页面将顺利加载。但是有了这一行,我就得到了错误
其他人的最后更新:我已经标记了正确的答案。我需要先启动新会话,然后才能取消设置上一个会话的变量。在会话启动()之前不应使用会话销毁()。试试这个:
session_start();
会话设置cookie参数(3600,“/”;
会话_destroy()代码>要删除所有会话变量,请使用:
session_unset();
如果您在销毁会话后遇到问题,则代码可能试图访问尚未设置的会话变量。我喜欢使用isset()
乙二醇
共享精确代码?这在语法上是不正确的。PHP会话可以通过session\u destroy()
销毁。我想我已经读到session\u destroy()现在不推荐了。仍然可以吗?但是无论如何,session_destroy()选项也会产生同样的问题。我已经更新并扩展了上面的代码;在session_destroy()行上。无论如何,它会产生PHP警告:session_destroy():尝试在我尝试过的几个服务器上销毁未初始化的会话,而不是HTTP 500。底线。可能是其他原因造成的(除非是缺少的分号)。
$myVar = "";
if (isset($_SESSION('MyVar')) $MyVar = $_SESSION('MyVar');