2013-07-08 75 views
0

我今天用phpCas庫https://wiki.jasig.org/display/CASC/phpCAS面臨一個問題。警告:session_destroy():試圖用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是一個衆所周知的庫。

+2

爲什麼** symfony2 **標籤在你的問題中?因爲sf2不處理這樣的會話。 –

+0

因爲我使用的是symfony2,並且認爲這個bug可能與它有關係(即使它看起來不是這樣) – MisterJ

回答

1

聽起來像是你簽出後,主分支(2af859ff76) - 只是檢查,它在它有一個錯誤你應該:

  • 退房釋放的一個分支,像1.3穩定
  • 登錄與作者
這個bug。
+0

非常感謝。原以爲這可能是他們的代碼中的一個錯誤,然後最近一次更新至少在一個月前發生,而且沒有人抱怨讓我覺得我應該錯了。我認爲phpCas更受歡迎。 – MisterJ

0

由於手冊建議「session_write_close - 寫會話數據和結束會話」所以你得到公平的警告。因爲Session已經關閉。

FYI

+0

我不是在說這個問題嗎? – MisterJ

+0

是的,請刪除session_write_close() –

+0

您是否閱讀過該問題?代碼不是我的,它來自phpCas庫... – MisterJ

0

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

還標題(「位置...)發出了頭,所以你不能事後關閉會話。做重定向在會議閉幕

+0

你甚至花時間閱讀已經給出的答案和評論嗎? – MisterJ