微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 为什么会话对象销毁失败

当我使用session_destroy()时,我得到“会话对象销毁失败”.

session_start();
if(isset($_SESSION['user_id'])){    
    $_SESSION=array();
    if(isset($_COOKIE[session_name()])){
        setcookie(session_name(),'',"/");
    }
    session_destroy();
}

是什么导致这个错误

解决方法

错误

Warning: session_destroy(): Session object destruction Failed

这是相当微不足道的,没有会话已经启动对象已被评估,所以你不能破坏它.

@运算符并不总是有效,例如具有错误报告功能.

编辑:

1) What causes this error?

PHP尝试删除会话文件时,通常会导致此错误,但无法找到它.

在你使用session_destroy的情况下,只有one place in PHP导致这种情况.那时session.save_handler(参见session_set_save_handler)对于销毁动作返回FALSE.这可能取决于您使用哪种类型的保存处理程序,认的是文件.使用那个,当session.save_path设置错误时(例如,不是可访问的目录),这将导致这样的错误.

2) Why would the “@” not be suppressing the error?

这取决于输出的创建方式和PHP配置. @并不总是有效.例如,使用set_error_handler注册的回调仍将收到这些消息.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐