2010-03-15 63 views
0

出於某種原因,這個PHP腳本不會迴應任何事情:無法在PHP中設置Cookie?

<?php setcookie("pop",'hi',time()+604800); echo $HTTP_COOKIE_VARS['pop']; ?> 
+1

編輯之後,您的問題與原始問題幾乎沒有任何相似之處。你應該開一個新的,特別是因爲你已經接受了答案。 – deceze 2010-03-15 02:10:46

回答

4

$HTTP_COOKIE_VARS已廢棄PHP 4.1.0,儘量$_COOKIE['pop']代替。

+0

任何想法爲什麼這個編輯不起作用? – William 2010-03-15 02:02:08

+1

你在說什麼「編輯」? – Dolph 2010-03-15 02:04:01

+0

我剛剛做的一個,抱歉花了這麼長時間 – William 2010-03-15 02:06:04

1

一旦餅乾已經確定,他們可以在未來頁面加載與$ _COOKIE或$ HTTP_COOKIE_VARS數組訪問。請注意,像$ _COOKIE這樣的超全球變量可以在PHP 4.1.0中使用。 Cookie值也存在於$ _REQUEST中。

via Documentation

可能是因爲您可以在相同的頁面加載中訪問它。

+0

看看編輯。 – William 2010-03-15 02:12:28

1

當你設置一個cookie時,它的值會和頁面一起發送給客戶端。 $_COOKIE(或$HTTP_COOKIE_VARS)包含由客戶端連同請求發送的的cookie信息。由於您只需設置cookie,客戶端將只能發送下一個請求的信息。

manual puts it like this

一旦餅乾已經確定,他們可以在接下來的頁面加載與$ _COOKIE或$ HTTP_COOKIE_VARS數組訪問


重新編輯

它仍然是同樣的問題。如果名稱和密碼是管理員的名稱和密碼,那麼您只需設置一個cookie,這會默默發生。然後,您會迴應與請求一起發送的cookie的內容,該內容可能爲空,因此它不會回顯任何內容。

你真的不應該做的是將管理員名稱和密碼存儲在cookie中。它是Bad™。任何有權訪問機器的人都可以查看cookie以獲取敏感的登錄信息。此外,信息將隨每個請求一起傳輸,很可能以純文本形式傳輸,因此任何代理或嗅探器都可以獲取登錄信息。或者在將它們存儲在cookie中或使用適當的會話之前加密它們。

+0

看看編輯。 – William 2010-03-15 02:12:51