2010-06-04 54 views
0

我在我的網站上遇到cookies問題。驗證用戶憑據後,如果「記住我」,執行以下代碼設置:我的網站cookies有問題

session_start(); 
    $_SESSION['username'] = $myusername; 
if(isset($_POST['remember'])){ 
     setcookie("cookname", $_SESSION['username'], time() + 60 * 60 * 24 * 100, "/"); 
} 

網站上的每一頁,然後在開頭下面的代碼:

session_start(); 

if(isset($_COOKIE['cookname']) && !isset($_SESSION['username'])){ 
    $_SESSION['username'] = $_COOKIE['cookname']; 
} 

如果我關閉瀏覽器窗口,然後再次打開它,即使設置了「記住我」,網站也有登錄提示。奇怪的是,如果我只關閉網站的標籤,然後回到它,它會記住我登錄。發生了什麼事?

由於提前,

馬特

回答

4
  1. 不要在Cookie中存儲密碼。
  2. 在將任何內容存儲到會話中之前,您需要調用session_start。
  3. 在許多瀏覽器(例如Firefox)中,您可以查看實際設置的cookie。您還可以在Fiddler或LiveHTTPHeaders中查看HTTP標頭。這應該有助於調試。
+0

@part 2:你好,我已經粘貼了更多的代碼,對不起 – Matt 2010-06-04 20:47:39

+1

+ +1作爲他的第一點。 Cookie是簡單的文本文件;任何人都可以閱讀。 – eykanal 2010-06-04 20:50:31

+0

@part 1:我應該只有「cookname」cookie嗎?這通常是存儲在cookie中的唯一東西嗎? – Matt 2010-06-04 20:51:00