我的用于重置会话变量的PHP脚本不起作用。
我需要调用一个PHP文件destroy.php
,该文件包含用于从ajax取消设置会话变量的代码,除会话清除外,其他一切工作正常。
我正在发布用于清除会话变量的代码,请指出我的错误。
jQuery代码:
$.ajax
({
type: "POST",
url: "SubmitReview.php",
data: dataString,
cache: false,
success: function(response)
{
$.fn.destroySession();
$('body').animate({scrollTop:0}, 500);
$('body').children(':not(div.ErrorMessageContainer)').fadeTo(500, 0.1);
$('div.ErrorMessageContainer').html(response).fadeIn(500).delay(5000).fadeOut(500);
setTimeout(function()
{
$('body').children(':not(div.ErrorMessageContainer)').fadeTo(500, 1);
}, 5400);
setTimeout(function()
{
window.location.href = "Thanks.php";
}, 5600);
}
});
$.fn.destroySession = function()
{
$.post("Destroy.php");
}
destroy.php
:
<?php
if(isset($_SESSION['MN']))
{
$_SESSION['MN'] = array();
unset($_SESSION['MN']);
}
?>
如评论中所述,您没有启动会话,必须使用会话将其包含在所有文件中。
因此,session_start();
在打开的PHP标记的顶部和下方添加。
参考:
将错误报告添加到文件顶部,这将有助于发现错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Then the rest of your code
旁注:显示错误仅应在登台时进行,而不应在生产时进行。
“为什么再次启动会话” -因为,
session_start();
即使您要取消设置文件,也必须将其保留在文件中(这就是他们在PHP.net上构建它的方式)。
<?php
session_start();
if(isset($_SESSION['MN']))
{
$_SESSION['MN'] = array();
unset($_SESSION['MN']);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句