【问题标题】:PHP session_destroy() warning Session object destruction failed [duplicate]PHP session_destroy()警告会话对象销毁失败[重复]
【发布时间】: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()吗?应该是解决您问题的更简单方法。

标签: php jquery session


【解决方案1】:

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

<?php    
session_start();

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    相关资源
    最近更新 更多