我有這樣的代碼在PHP頁面:
if(!isset($_COOKIE[$cookie_name])) {
if(!setcookie($cookie_name, mt_rand(), time() + (86400 * 30), "/")) {
die("[ERROR COOKIE] Failed to set cookie!");
}
}
如果我沒有在我的瀏覽器的cookie任意設定第一次頁面加載$_COOKIE[$cookie_name]
設置爲0
。之後,如果我重新加載頁面,則按預期設置爲隨機數。
到目前爲止,我只是做一個解決方法是這樣的:
if(!isset($_COOKIE[$cookie_name])) {
if(!setcookie($cookie_name, mt_rand(), time() + (86400 * 30), "/")) {
die("[ERROR COOKIE] Failed to set cookie!");
}
if($_COOKIE[$cookie_name] == 0) {
echo "<meta http-equiv=\"refresh\" content=\"0; url=./\" />";
die();
}
}
但我想明白的是爲什麼在第一時間setcookie()函數默認爲0
。
你怎麼檢查它的第一次? '$ _COOKIE'超全局將不會從'setcookie()'獲得新值,直到重新加載後。這是預料之中的。 – 2014-10-27 15:50:32