PHP取消设置会话不起作用

时间:2016-03-19 14:13:58

标签: php jquery ajax session

我的用于取消设置会话变量的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']);
}

?>

2 个答案:

答案 0 :(得分:1)

如评论中所述,您没有启动会话,并且需要使用会话在所有文件中。

因此,在开头PHP标记的顶部和下方添加session_start();

参考:

error reporting添加到文件的顶部,这有助于查找错误。

<?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']);
}

答案 1 :(得分:0)

将session_start()放在第一行。

<?php
session_start();

if(isset($_SESSION['MN']))
{
    $_SESSION['MN'] = array();
    unset($_SESSION['MN']);
}