本文目錄一覽:
- 1、PHP即時cookie有效期時間怎麼設置?
- 2、php中的cookie問題
- 3、php里的cookie立即生效問題 菜鳥求教。。!!
- 4、php里的cookie立即生效問題 菜鳥求教。。!
- 5、PHP即時cookie有效期時間怎麼設置
- 6、PHP的cookie問題
PHP即時cookie有效期時間怎麼設置?
回”問題補充”
PHP手冊上關於setcookie函數的expire參數有這樣一個解釋
If set to 0, or omitted, the cookie will expire at the end of the session (when the browser closes).
如果設為0 或者忽略該參數, cookie將在session結束時(關閉瀏覽器時)過期
所以, 如果要寫4,5個參數, 那把第三個設為0就可以了
php中的cookie問題
php setcookie 後無法立即生效,必須到下一個頁面才能生效
你第一次打開相當於是 setcookie,這個時候 $_Cookie 中還找不到這個鍵值
刷新後,相當於第二次訪問,這個時候才能讀取之前設置的cookie值
所以要刷新後才會顯示 :)
php里的cookie立即生效問題 菜鳥求教。。!!
用來註冊 COOKIE 的函數。主要是用於以數組形式註冊多個 COOKIE 。
各個參數和 setcookie 函數相同。除了第二個參數。。這個自定義函數允許你把數組傳入,並註冊成 COOKIE。中間的循環註冊 COOKIE 代碼即是。。
$_COOKIE[$var] = $value;
這一行代碼,是讓 COOKIE 在當前腳本中即時生效用的。。 $_COOKIE 雖然是預定義變量。。但是變量就是變量。。是允許自己往裡面存數據的。。
php里的cookie立即生效問題 菜鳥求教。。!
用來註冊 COOKIE 的函數。主要是用於以數組形式註冊多個 COOKIE 。
各個參數和 setcookie 函數相同。除了第二個參數。。這個自定義函數允許你把數組傳入,並註冊成 COOKIE。中間的循環註冊 COOKIE 代碼即是。。
$_COOKIE[$var] = $value;
這一行代碼,是讓 COOKIE 在當前腳本中即時生效用的。。 $_COOKIE 雖然是預定義變量。。但是變量就是變量。。是允許自己往裡面存數據的。。
PHP即時cookie有效期時間怎麼設置
設置方法如下:
setcookie(“cookie_name”, “abcd”, time()+3600);
解釋:這個cookie有3600秒的有效期;
cookie有效期在退出作用域那一刻開始生效;
重新又有3600秒,設置cookie時,不會考慮之前的是否設置cookie和cookie是否有效,可以認為是強制設置。
如果關閉瀏覽器重新打開又重新算(當然這個要php.ini設置了關閉瀏覽器立即失效的開關),其實就是打開頁面產生cokeie開始算起,如果你打開頁面產生cokeie的時間有1800秒了,假如設置的3600秒失效,再次刷新頁面就剩1800秒了
PHP的cookie問題
發錯地方了!
PHP中使用cookie
1、設置Cookie
PHP用SetCookie函數來設置Cookie。必須注意的一點是:Cookie是HTTP協議頭的一部分,用於瀏覽器和服務器之間傳遞信息,所以必須在任何屬於HTML文件本身的內容輸出之前調用Cookie函數。
SetCookie函數定義了一個Cookie,並且把它附加在HTTP頭的後面,SetCookie函數的原型如下:
int
SetCookie(string
name,
string
value,
int
expire,
string
path,
string
domain,
int
secure);
除了name之外所有的參數都是可選的。value,path,domain三個參數可以用空字符串代換,表示沒有設置;expire
和
secure兩個參數是數值型的,可以用0表示。expire參數是一個標準的Unix時間標記,可以用time()或mktime()函數取得,以秒為單位。secure參數表示這個Cookie是否通過加密的HTTPS協議在網絡上傳輸。
當前設置的Cookie不是立即生效的,而是要等到下一個頁面時才能看到.這是由於在設置的這個頁面里Cookie由服務器傳遞給客戶瀏覽器,在下一個頁面瀏覽器才能把Cookie從客戶的機器里取出傳回服務器的原因。
在同一個頁面設置Cookie,實際是從後往前,所以如果要在插入一個新的Cookie之前刪掉一個,必須先寫插入的語句,再寫刪除的語句,否則可能會出現不希望的結果。
來看幾個例子:
簡單的:
SetCookie(“MyCookie”,
“Value
of
MyCookie”);
帶失效時間的:
SetCookie(“WithExpire”,
“Expire
in
1
hour”,
time()+3600);//3600秒=1小時
什麼都有的:
SetCookie(“FullCookie”,
“Full
cookie
value”,
time()+3600,
“/forum”,
“.phpuser.com”,
1);
這裡還有一點要說明的,比如站點有幾個不同的目錄,那麼如果只用不帶路徑的Cookie的話,在一個目錄下的頁面里設的Cookie在另一個目錄的頁面里是看不到的,也就是說,Cookie是面向路徑的。實際上,即使沒有指定路徑,WEB服務器會自動傳遞當前的路徑給瀏覽器的,指定路徑會強制服務器使用設置的路徑。解決這個問題的辦法是在調用SetCookie時加上路徑和域名,域名的格式可以是“”,也可是“.phpuser.com”。
SetCookie函數里表示value的部分,在傳遞時會自動被encode,也就是說,如果value的值是“test
value”在傳遞時就變成了“test%20value”,跟URL的方法一樣。當然,對於程序來說這是透明的,因為在PHP接收Cookie的值時會自動將其decode。
如果要設置同名的多個Cookie,要用數組,方法是:
SetCookie(“CookieArray[]”,
“Value
1″);
SetCookie(“CookieArray[]”,
“Value
2″);
或
SetCookie(“CookieArray[0]”,
“Value
1″);
SetCookie(“CookieArray[1]”,
“Value
2″);
2、接收和處理Cookie
PHP對Cookie的接收和處理的支持非常好,是完全自動的,跟FORM變量的原則一樣,特別簡單。
比如設置一個名為MyCookier的Cookie,PHP會自動從WEB服務器接收的HTTP頭裡把它分析出來,並形成一個與普通變量一樣的變量,名為$myCookie,這個變量的值就是Cookie的值。數組同樣適用。另外一個辦法是引用PHP的全局變量$HTTP_COOKIE_VARS數組。
分別舉例如下:(假設這些都在以前的頁面里設置過了,並且仍然有效)
echo
$MyCookie;
echo
$CookieArray[0];
echo
count($CookieArray);
echo
$HTTP_COOKIE_VARS[“MyCookie”];
就這麼簡單。
3、刪除Cookie
要刪除一個已經存在的Cookie,有兩個辦法:
一是調用只帶有name參數的SetCookie,那麼名為這個name的Cookie將被從關係戶機上刪掉;另一個辦法是設置Cookie的失效時間為time()或time()-1,那麼這個Cookie在這個頁面的瀏覽完之後就被刪除了(其實是失效了)。
要注意的是,當一個Cookie被刪除時,它的值在當前頁在仍然有效的。
4、使用Cookie的限制
首先是必須在HTML文件的內容輸出之前設置;
其次不同的瀏覽器對Cookie的處理不一致辭,且有時會出現錯誤的結果。
第三個限制是在客戶端的。一個瀏覽器能創建的Cookie數量最多為30個,並且每個不能超過4KB,每個WEB站點能設置的Cookie總數不能超過20個。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/285704.html