首頁  >  文章  >  php教程  >  靈活運用 cookie

靈活運用 cookie

高洛峰
高洛峰原創
2016-12-02 10:28:071202瀏覽

cookie 是強大且方便的功能,它能提供一個範圍內的全程變數,來看看cookie 的語法: 

setcookie(cookievalue,value,time,path,domain); 

cookievalue 是設定的cookie 變數, value 是將一個值設為cookie 的變數,time 是這個cookie 變數作用的時間,path 是cookie 作用的路徑,domain 是cookie 作用的域; 

需要注意的是在php 程式內設定cookie 時一定不能在html 這個標記的後面設定. 

下面看例子: 

setcookie("cookietime","2001-5-2",time()+3600,"/","test.php"); 

這個cookie 設定的意思是給日期"2001-5-2" 設定一個cookie 變數$cookietime ,其作用時間為3600 秒,這個變數在/test.php 裡生效. 

這時在test.php 裡加上echo $ cookietime; 就會顯示2001-5-2 . 

如果將cookie 裡的時間置空,那麼關閉瀏覽器後,cookie 就失效了. 

cookie 有一個特殊的地方就是cookie 設定的值並不會馬上被執行,直到第二次引用時才會被執行,那麼第一次引用的cookie 值是什麼呢? 
就是cookie 上一次設定的值,這兒理解起來有點費勁,沒關係,舉個例子就全明白了: 

setcookie("cookietime",time,time()+3600,"/","test.php"); 

第一次引用時$cookietime 內沒有值,第二次引用時發現$cookietime內的time 才顯示出來,修該time 為2001: 

setcookie("cookietime",2001,time()+3600,"/","test.php"); 

再執行一次,第一次引用時$cookietime 的值為time,第二次引用$cookietime 的值才為2001;那麼cookie 的這個特性有何功用呢?聰明的讀者可能已經知道其用法了,就是用於通告和警報功能上的;

看個關於使用cookie 這個特性的例子,這裡程式要實現的功能是當用戶下一次來瀏覽網站時,所有這個用戶沒看過的新資訊後面都添加一個(new),用cookie 來完成這個功能再簡單不過了,至少在我看來還沒有任何其它方法能比使用cookie 來完成這個功能更簡單的了. 

存儲信息自然需要時間值,只要數據庫有存儲與每條信息相關的時間值加上cookie 就能完成這個看起來還不錯的功能: 

test.php: 

$time=date('Y-m-d H:i:s'); 
setcookie("cookietime",$time,time() +3600000,"/","test.php"); 

...... 
...... 
//從資料庫取出時間值 
$datatime=mysql_result($result,$i," time"); 

//比較兩個時間的大小,所有$datatime 大於$cookietime 的資訊後面加上(new) 
if ($datatime>$cookietime) 
echo "(new)"; 
... ... 
...... 


整個過程就是這麼簡潔明了,當用戶向網站發出瀏覽/test.php 的請求時,他的瀏覽器就會把他上一次瀏覽/test.php 的cookie 記錄發給伺服器,伺服器接受這個cookie 值並做處理,同時把使用者瀏覽器的cookie 重新設定,並回傳處理的結果,這就是cookie 運作的原理.

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn