PHP session_destroy()警告会话对象销毁失败[重复]

Posted

技术标签:

【中文标题】PHP session_destroy()警告会话对象销毁失败[重复]【英文标题】:PHP session_destroy() warning Session object destruction failed [duplicate] 【发布时间】:2013-06-26 08:17:55 【问题描述】:

我有这个 php 脚本,但在销毁会话时遇到问题:

<?php
    session_start();

    if(isset($_SESSION['id_client']) &&  isset($_POST['ok']))
        session_destroy();
        echo 1;
    
?>

我收到此警告:

警告:session_destroy():会话对象销毁失败 C:\xampp\htdocs\template\nota\finalizare_nota_mobil.php 在第 6 行

当我简单地使用...

<?php
    session_start();
    session_destroy();
?>

...它有效。有什么想法吗?

编辑: 实际上,如果我从另一个位置调用它,则第二个有效(我应该提到我从 jQuery 帖子中调用第一个脚本)

编辑2: 有点跟踪 jQuery $.post 的问题,但我不明白为什么。代码如下:

$.post("../template/nota/finalizare_nota_mobil.php",ok:1, function(data, textStatus,jqXHR)
    if(data==1)
        alert("Total: "+totalPartial);
        window.location.href="http://qr-menu.ro/";
    
);

【问题讨论】:

什么你没有回应什么? 在调用 session_start() 之后;尝试调用 session_id() 并让我们知道您所看到的 - 尝试 echo session_id(); leej0qrdq5gsjg59no6oaqbgq6 。会话存在,因为如果我从不同位置调用脚本,它可以工作 Marcell Fulpo,我看了这篇文章,没有任何帮助:( 你试过session_restart()吗?应该是解决您问题的更简单方法。 【参考方案1】:

问题解决了。我所做的是清空会话并重新生成 id,然后将其销毁。我不完全理解这个问题,但它有点工作:

<?php    
session_start();

if(isset($_SESSION['id_client']) &&  isset($_POST['ok']))
    $_SESSION=array();
    session_regenerate_id(); 
    session_destroy();
    echo 1;

?>

【讨论】:

以上是关于PHP session_destroy()警告会话对象销毁失败[重复]的主要内容,如果未能解决你的问题,请参考以下文章

会话未设置,还是 session_destroy? [复制]

PHP - 无法结束会话

从 PHP 中注销会话的正确方法

单击链接时销毁 PHP 会话

PHP处理会话函数session和cookie总结

关于 PHP 会话的几个问题