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");
......
......
//從數據庫取出時間值