2010-06-24 390 views
1

我在我的頁面上的錨點擊設置cookie:我試圖找回獲取餅乾PHP

$_COOKIE['bookmarklet_twitter_signin'] 

但奇怪的是我」

$("#btn_twitter_signin").click(function() { 
    $.cookie("bookmarklet_twitter_signin", "true"); 
}); 

,並在服務器端m得到一個「未定義的索引:bookmarklet_twitter_signin」,雖然我確信通過從Firefox View Page Info檢查cookie是正確保存的,我錯過了什麼嗎?

謝謝。

葉海亞A.Salam

+3

做var_dump($ _ COOKIE),看看你看到了什麼 – 2010-06-24 00:31:01

回答

2

這可能與路徑做,試試:

$("#btn_twitter_signin").click(function() { 
    $.cookie("bookmarklet_twitter_signin", "true", {path: '/'}); 
}); 
+0

同意。它也可能與設置cookie時使用的域名以及您用來訪問後續PHP腳本的域名有關。你也可以指定你的域名(域名:'.domain.com')。 – TomWilsonFL 2010-06-24 00:35:14

+0

就像一個魅力 – 2010-06-24 20:31:06

1

的PHP將無法取回設置cookie的,直到頁面重新加載。 PHP,因爲它是服務器端,只在頁面加載時運行一次。所以如果你在頁面加載後更改cookie,你的PHP已經運行。

這意味着您需要爲PHP重新加載頁面以查看由Javascript設置的Cookie。

您必須使用JQuery易於使用的AJAX體系結構才能在不刷新頁面的情況下執行此操作。

使用var_dump($ _ COOKIE)(如itay說)或print_r($ _ COOKIE)打印所有使用PHP的cookie。你將能夠看到發生了什麼。

+0

只需注意cookie是所有客戶端並隨每個請求一起發送,因此如果cookie正確設置爲JS,那麼它應該隨任何後續HTTP請求一起發送。 – TomWilsonFL 2010-06-24 00:37:43

+0

我想我的解釋不是很好。希望我澄清一下。 – 2010-06-24 00:42:03