- 帖子
- 1195
- 主題
- 395
- 精華
- 113
- 積分
- 1747
- 點名
- 0
- 作業系統
- Vista
- 軟體版本
- Office 2003
- 閱讀權限
- 200
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2010-5-1
- 最後登錄
- 2025-5-11
      
|
4#
發表於 2010-5-16 13:35
| 只看該作者
設定Cookies物件的使用期限
若只指定Cookie物件名稱來寫入資料,而沒有在指定Cookies物件的有效期限,則Cookie物件將只存在於瀏覽器之中,當瀏覽器關閉後Cookie物件就消滅了。
Cookie物件的生命週期起始於瀏覽器被執行時。終止於瀏覽器結束執行時。那如果我們要延長Cookies 物件的生命週期呢?若要延長Cookie 物件的生命週期我們可另用『Expires』參數來設定Cookies的生命週期(Expires表失效),如下所示:- setcookie(“名稱”, ”資料值”,”存活期限”);"
複製代碼 例如:使用time()函數取得時間戳記(自01/01/1970日起到目前的日期時間秒數)加上Cookie 物件的可存活秒數:- //在10分鐘(600秒)後消滅
- setcookie("myname","charles",time()+600);
- //在3600秒後消滅
- setcookie("myname","charles",time()+3600);
複製代碼 要讓Cookie在特定的日期時間消滅,這時可改用mktime()函數來做,mktime()函數格式如下:
mktime() 函數格式- int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])
複製代碼 使用mktime()函數設定Cookie到期時間:- //在2004年1月1日消滅
- setcookie("myname","charles",mktime(0,0,0,1,1,2004));
- //在2003年10月5日上午10點消滅
- setcookie("myname","charles",mktime(10,0,0,10,5,2003));
複製代碼 實做學習2:
延續實做學習1,為Cookies 物件建立使用期限,證明Cookies 物件確實是儲存在瀏覽連線者的瀏覽器之中。
ex6_6.php- <?
- ob_start();
- if (!isset($_COOKIE["mynum"]))
- {
- echo "這是您第1次來";
- $life = mktime(10,0,0,10,5,2003);
- setcookie("mynum",1,$life);
- }
- else
- {
- $num=$_COOKIE["mynum"];
- $num++;
- echo "這是您第 " . $num . "次來<br>";
- $life = mktime(10,0,0,10,5,2003);
- setcookie("mynum",$num,$life);
- }
- ?>
複製代碼 啟動瀏覽器,開始瀏覽ex6_6.php,此時我們將會發現在『C:\Documents and Settings\XXX\ Local Settings\Temporary Internet Files』目錄中的快取記憶中不但有範例ex6_9的程式網頁暫存檔,同時還多出Cookie 的物件檔案!這次因為我們有設定Cookie物件的到期日為Cookie物件使用後到失效期限內內都有效,因此,該Cookie物件會以一個文字檔案的格式存在於瀏覽器中。
提示!!所有的Cookie檔案都有一個預設的網域與路徑,只有建立此Cookie的網域與路徑才能存取這個Cookie檔案。 |
|