2011-11-16 38 views
1

我需要更新cookie。我在通過ajax調用的php文件中這樣做。這是代碼:php cookie不更新

setcookie('items['.$_POST['id'].']'); 

cookie不更新,其實如果我的SetCookie函數我看到$_COOKIE['items']是,這是在調用SetCookie函數之前相同的後寫print_r($_COOKIE['items'])。我能怎麼做?

+0

要在頁面上放棄cookie,頁面需要刷新一次。 – Rafee

+1

我希望你在將Cookie插入Cookie之前清理了$ _POST ['id']'?'intval($ _ POST ['id'])'會有很長的路要走。 – Geert

+0

[在setcookie()之後立即訪問$ _COOKIE](http://stackoverflow.com/questions/3230133/accessing-cookie-immediately-after-setcookie) – outis

回答

3

您無法在同一個實例/頁面中設置和訪問cookie。你必須在設置之後做一個重定向或刷新。

此外,你應該做這樣的事情,而不是:

setcookie("id","items['.{$_POST['id']}.']"); 
0

當您使用setcookie是不添加cookie到超全球$_COOKIE。你必須自己做或重新加載頁面。另外,由於您將cookie設置爲空值,因此不會設置任何內容。

0

你要設置的值的鍵與$_COOKIE訪問:

setcookie('items['.$_POST['id'].']', 'some_value'); 

Link to manual

0

php.net/manual/function.setcookie.php

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

所以這個cookie可以通過PHP腳本的請求通過$_COOKIE訪問。

0

這是設置cookie

setcookie(name, value, expire, path, domain); 

當您創建一個cookie,使用函數的setcookie語法,你必須指定三個參數。這些參數是setcookie(名稱,值,到期日期):

  1. name:您的cookie的名稱。您將使用此名稱以後檢索您的cookie,所以不要忘記它!
  2. value:存儲在您的cookie中的值。常用值是用戶名(字符串)和上次訪問(日期)。
  3. 過期:cookie過期並被刪除的日期。如果您未設置此過期日期,則會將其視爲會話Cookie,並在瀏覽器重新啓動時刪除。

注意: - 這將重寫您的cookie不更新。