2012-05-24 109 views
1

問題是我無法從PHP設置cookie。 我試圖谷歌的問題,並在這裏搜索stackoverflow,但 沒有任何解決方案的工作。PHP設置cookie localhost不工作​​

我已經試過:

setcookie('user_id', $row['user_id'], time() + (60 * 60 * 8), '/', '127.0.0.1'); 
setcookie('user_id', $row['user_id'], false, '/', false); 
setcookie('user_id', $row['user_id'], time() + (60 * 60 * 8), '/', false); 
setcookie('user_id', $row['user_id'], time() + (60 * 60 * 8), '/', ''); 

我使用的瀏覽器是火狐12和Chrome 19 Apache服務器上。

感謝您的幫助。

編輯:我的數據庫似乎有問題,當我取數據放在我的餅乾, 所以沒關係;)感謝您的時間!

+2

你怎麼知道它不起作用? – flowfree

+0

你有沒有遇到錯誤,或者你怎麼知道它不起作用? –

+0

我重定向並嘗試使用cookie後,未設置。 isset返回false,沒有任何工作,因爲它應該是如果餅乾工作。 – ptf

回答

1

您確定在該代碼之前沒有輸出嗎? 全部echo s和全部include s包括不完全是PHP代碼的東西都被視爲輸出。

setcookie()調用之前無法輸出任何內容的原因很簡單。要設置cookie,服務器必須向瀏覽器發送標頭指令。如果內容正文已經打印出來,則不能發送該標題。

您可以更改您的代碼以在任何輸出之前放置該呼叫,或者您可以在代碼的開頭處簡單地放入ob_start()。該函數導致PHP緩存所有輸出,並在腳本結束時僅發送一個。

+0

我有一個標題('Location:'...);之後,它成功重定向。 – ptf

+0

@kjelelokk嘗試在**'setcookie()'調用之前放置'header()'調用**。 –