2009-09-05 76 views
0

我有用PHP設置cookie的奇怪問題。一切正常,直到今天上午,當我上傳我的腳本到服務器。我的餅乾不會正常烘烤

下面是我的一些代碼

if (!isset($_COOKIE["loggedin"])){ 
show login form } else { show content } 

這是我的登錄頁面

setcookie("loggedin", "true", time()+3600,"/","mydomain.com"); 

我知道使用cookie的登錄是不是最好的做法,但它是一個虛擬的網站。 任何人...'直到今天早上,餅乾工作正常,但現在他們不會。 我以前也有過類似的問題,但我不記得我如何解決它:(

任何幫助是非常讚賞!

回答

1

我也有這個問題。我發現保存在瀏覽器中的cookie取決於瀏覽器和服務器。檢查Cookie從瀏覽器被設置:


Internet Explorer 7和8個

工具> Internet選項>(常規選項卡)>瀏覽歷史記錄>設置>查看文件

火狐

工具>選項>隱私>顯示Cookie


array()響應表明正在設置多個cookie。

+0

我三重檢查了我的代碼,但只有一個地方設置了Cookie。 – Aviatrix 2009-09-06 13:45:03

1

是您的烤爐不夠熱?

... 啊哈

檢查警告。你發射頭前的內容嗎?如果是這樣,你要麼想要移動的setcookie()較高或使用輸出緩衝。

嘗試

var_export($_COOKIE); 

看看有沒有什麼實際存在。

檢查cookie是否被設置爲開頭。有很多方法可以在HTTP頭下降時觀看。如果您使用Firefox,請嘗試使用Live HTTP Headers擴展。

+0

我得到這個「array()」,我剛剛在setcookie函數後面添加了導出。 – Aviatrix 2009-09-05 18:03:32

+0

您絕對要檢查警告並檢查傳入的頭文件。 – Charles 2009-09-05 18:38:14

0

檢查您的瀏覽器是否阻止了Cookie。如果它以前工作過,並且在將它放到不同的服務器上時出現問題,那可能是最可能的原因。

+0

不,我的瀏覽器沒有阻止cookie ..我沒有一大堆服務器來測試:/ – Aviatrix 2009-09-06 13:43:06

0

檢查您的域名上的瀏覽器Cookie。如果您使用的是Firefox,請使用FireCook和FireCookie獲得Web開發人員擴展。或者,如果你使用IE瀏覽器,獲得了IE Cookie Viewer

嘗試下探路徑和域參數:

setcookie("loggedin", "true", time()+3600); 

它可能只是幫助。我之前有類似的問題,放棄它們可以讓我的應用程序工作 - 奇怪。

+0

我試圖放棄域和路徑參數..仍然沒有..我得到了pisd,並使用會話,而不是.. – Aviatrix 2009-09-06 13:43:42