警告:session_destroy():尝试使用phpCas销毁未初始化的会话

时间:2013-07-08 08:58:33

标签: php symfony cas phpcas

我今天面临的问题是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是许多人使用的知名库。

3 个答案:

答案 0 :(得分:1)

听起来你检查了主分支(2af859ff76) - 刚检查过它确实有错误。你应该:

  • 查看其中一个发布分支,例如1.3-stable
  • 与作者一起记录此错误

答案 1 :(得分:0)

正如手册所示“ session_write_close - 写会话数据和结束会话”所以你得到了公正的警告。会议已经结束。

FYI

答案 2 :(得分:0)

你需要session_start();在你可以摧毁它之前

标题(“位置...”)正在发送标题,因此您无法在之后关闭会话。在关闭会话后执行重定向