加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 21:27:53 所属栏目:PHP教程 来源:网络整理
导读:当我使用session_destroy()时,我得到“会话对象销毁失败”. session_start();if(isset($_SESSION['user_id'])){ $_SESSION=array(); if(isset($_COOKIE[session_name()])){ setcookie(session_name(),'',"/"); } session_destroy();} 是什么导致这个错误?
当我使用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注册的回调仍将收到这些消息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读