2016-09-28 78 views
0

您好我正在學習PHP並試圖建立論壇作爲開始。 Forum 您可以執行測試並查看登錄會話未正確響應。 用戶名:密碼測試:測試PHP會話無法正常工作

<?php 
//signout.php 
include 'connect.php'; 
include 'header.php'; 

echo '<h2>Sign out</h2>'; 

//check if user if signed in 
if(isset($_SESSION['signed_in']) && $_SESSION['signed_in'] == true) 
{ 
    //unset all variables 
    $_SESSION['signed_in'] = NULL; 
    $_SESSION['user_name'] = NULL; 
    $_SESSION['user_id'] = NULL; 
    $_SESSION['user_level'] = NULL; 


    echo 'Succesfully signed out, thank you for visiting.'; 
    echo " test"; 
} 
else 
{ 
    echo 'You are not signed in. Would you <a href="sign_in.php">like to</a>?'; 
} 

include 'footer.php'; 
?> 

您可以登錄,但再經過某些頁面看起來您還沒有登錄或試圖退出不退出的情況下正確。

問題是我的網站託管服務器上的會話。 本機在我的電腦上,它在WAMP下工作正常。 測試另一個網絡託管它工作正常。

不知道它是什麼...

+5

請給我們提供你的代碼。即使我們訪問您的網站,我們也無法看到它背後的PHP代碼。我們不可能知道發生了什麼事。 – icecub

+0

這裏是例如註銷代碼。當我嘗試註銷時,我可以多次執行此操作,並且實際會話爲空時需要時間。在另一個虛擬主機或本地服務器WAMP上,它的工作原理應該如何。沒問題。 – Marcel

+0

檢查您的PHP日誌「Headers already sent」錯誤並修復它們。見http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php – Barmar

回答

0

你是如何處理你的會話在每一頁上?它似乎通常設置正確,我已回覆「主題測試」,並報告我已成功回覆,但未顯示在列表中。

過去搞砸了我的一件事是忘記把session_start();在頁面的頂部,或在提供該頁面的函數中。您的會話數據仍然存在,但無法訪問該頁面,也不會記錄您嘗試存儲的任何會話數據。

+0

嗨克雷格是的,這是另一個問題,答覆不立即顯示。這需要時間。 session_start()作爲第一件事在標題中。這個問題只有在我的虛擬主機沒有其他地方。我也可以繼續退出,有時它可以在某些時候不工作... – Marcel

0

只是快速更新

問題是不是與我的劇本,但與虛擬主機和「啓用Unixy漆」。 我不得不禁用它。

謝謝你的全力幫助