2016-07-25 62 views
0

我完全被這個問題困惑。設置一個cookie應該是世界上最簡單的事情,但無論出於何種原因它都無法正常工作。目前我只是想讓測試腳本工作。它看起來像這樣:PHP的setcookie不會工作

$cookie_name = "user"; 
    $cookie_value = "John Doe"; 

    setcookie($cookie_name, $cookie_value, time() + 86400 * 30, "/"); 
    setcookie("act", "sj", time() + 86400 * 365); 
    setcookie("bbba", "Hello", time() + 86400); 

    echo $_COOKIE['act']; 
    echo $_COOKIE['bbba']; 
    echo $_COOKIE['user']; 

這些cookie都不會設置。沒有任何迴應,並且在使用檢查員時無法找到cookie。我已經嘗試了以下內容: - 將echo $ _COOKIE放置在同一目錄中的另一個文件中。 - 使用和不使用ob_start()和ob_flush() - 使用「/」,「/ direcotry」並且根本不使用路徑 - 將文件移動到根目錄以查看它是否在那裏工作。

似乎沒有任何工作,我看不出什麼可能是錯的。其他使用Cookie的腳本正在同一個域上工作,該域位於Web酒店。

任何人都可以在這裏看到問題嗎?

+1

在此代碼之前是否有任何其他輸出發送到瀏覽器,即使是一個雜散行或空格字符? – WillardSolutions

+1

謝謝您的建議,EatPeanutButter。這是一個空白。 – Magsen85

回答

2

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

這是從PHP手冊。如果您確實需要在聲明的同一頁面中設置$ _COOKIE數組中的值,您可以手動設置該值。

$_COOKIE['key'] = 'value'; 
echo $_COOKIE['key']; 

PHP Manual setcookie

+0

我的第一個想法也是,但是當他說,我給了OP一個疑問的好處,'我已經嘗試了以下內容: - 將echo $ _COOKIE放在另一個文件中......' – WillardSolutions

+0

prolly他在cookie過期後嘗試。 –

1

問題是由空白的文檔的開頭引起的。