2012-05-22 83 views
0
<?php 
    setcookie("name", "abc"); 
    echo $_COOKIE["name"]; 
?> 

當我重新加載此頁面時,屏幕上不顯示任何內容。爲什麼?PHP - setcookie不生效

但重新加載,顯示abc。

原因?

+2

那麼這是第一次在第二次加載頁面或第三次時顯示? – robert

+1

[無法在同一頁面上設置PHP cookie]的可能重複(http://stackoverflow.com/questions/7455214/cant-set-php-cookie-on-the-same-page) –

回答

11

當您設置cookie時,直到下一頁加載時纔可用。

這是非常清晰的the documentation,你應該閱讀。

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

餅乾不會成爲可見,直到一個頁面,該Cookie應該是可見的未來負載。要測試cookie是否設置成功,請在cookie過期之前在下一個加載頁面上檢查cookie。過期時間通過expire參數設置。調試cookie存在的一個好方法是簡單地調用print_r($ _ COOKIE);.

+0

它與像HTTP請求頭? – sc1013

+2

@Steven Cookie在響應中發送給瀏覽器。 '$ _COOKIE'是根據請求設置的。這就是爲什麼需要2個步驟。 –

0

Cookies是作爲網頁的HTTP響應的一部分發送所以他們不存在,直到後您發送響應。這就是爲什麼你必須重新加載頁面才能看到價值。