我今天面临的问题是phpCas库https://wiki.jasig.org/display/CASC/phpCAS。
问题如下,当我尝试使用一些注销功能时,我收到了消息
Warning: session_destroy(): Trying to destroy uninitialized session
在快速浏览一下phpCas的库代码之后,我设法找出问题的来源,这是一个注销函数的片段:
session_write_close();
header('Location: '.$cas_url);
phpCAS::trace("Prepare redirect to : ".$cas_url);
session_unset();
session_destroy();
问题似乎是session_write_close()
实际关闭了会话,然后session_destroy()
无效。
试图将session_write_close()
置于评论中并像魅力一样工作,但它会导致两个问题:
问题真的来自那里吗?或者它应该有用吗?
如果问题确实来自那里,为什么会出现问题而且没有人抱怨?以为phpCas是许多人使用的知名库。
答案 0 :(得分:1)
听起来你检查了主分支(2af859ff76) - 刚检查过它确实有错误。你应该:
答案 1 :(得分:0)
正如手册所示“ session_write_close - 写会话数据和结束会话”所以你得到了公正的警告。会议已经结束。
答案 2 :(得分:0)
你需要session_start();在你可以摧毁它之前
标题(“位置...”)正在发送标题,因此您无法在之后关闭会话。在关闭会话后执行重定向