2015-11-18 114 views
0

我有一個使用會話來檢查用戶登錄的小網站。php會話和會話unset + destroy會話保持不變

當用戶單擊註銷時,將被重定向到僅包含會話銷燬的頁面。

的代碼如下:

<?php 
session_start(); 
if(session_destroy()) { 
    $_SESSION = array(); 
    header("Location: http://domain.com/"); 
} 
exit(); 
?> 

我試圖刪除if語句來破壞會話時,檢查是否有任何問題。

我甚至已經使用unset並將數組設置爲空。

仍然在重定向到域主頁時用戶仍然登錄並且會話仍然設置。

另外我試圖取消設置特定的會話,但仍然沒有任何反應。

- 更新: 會話甚至沒有被返回爲空值。退出後回顯會話仍會返回用戶名的值。

+0

爲什麼session_destroy兩次? 如果session_destroy成功銷燬會話,它將返回true。 – Tim

+0

嘗試使用多個解決方案來取消設置/銷燬Cookie後出現錯誤。 – LetMeAnswerThis

+0

並且該值返回true。我總是收到標題重定向。 – LetMeAnswerThis

回答

0

此答案應該有所幫助。正如Roland Starke在評論中提到的,session_destroy不會刪除cookie。

https://stackoverflow.com/a/3512570/3563178

+0

這只是一個拼寫錯誤。根本不在網站上使用Cookie。我只是意味着會議。同樣使用論壇中提供的代碼或者.php上的原始帖子,我只會收到500內部錯誤。我相信這是因爲我無法訪問.ini文件。 – LetMeAnswerThis

0

試試這個。

<?php 
session_start(); 
if(session_destroy()) { 
echo '<meta http-equiv="refresh" content="0;URL=http://domain.com">'; 
} 
exit(); 
?> 

我認爲標題在你的這個特殊情況下會拋出一個錯誤。嗯...(頭已經發送)...