麻辣家族討論版版's Archiver

小誌 發表於 2011-4-19 18:09

6-2-2 設定Cookies物件的使用期限

[color=DarkRed][b][size=4]6-2-2   設定Cookies物件的使用期限[/size][/b][/color]
若只指定Cookie物件名稱來寫入資料,而沒有在指定Cookies物件的有效期限,則Cookie物件將只存在於瀏覽器之中,當瀏覽器關閉後Cookie物件就消滅了。


Cookie物件的生命週期起始於瀏覽器被執行時。終止於瀏覽器結束執行時。那如果我們要延長Cookies 物件的生命週期呢?若要延長Cookie 物件的生命週期我們可另用『Expires』參數來設定Cookies的生命週期(Expires表失效),如下所示:[code]setcookie(“名稱”, ”資料值”,”存活期限”);"[/code]例如:使用time()函數取得時間戳記(自01/01/1970日起到目前的日期時間秒數)加上Cookie 物件的可存活秒數:[code]//在10分鐘(600秒)後消滅
setcookie("myname","charles",time()+600);
//在3600秒後消滅
setcookie("myname","charles",time()+3600);[/code]要讓Cookie在特定的日期時間消滅,這時可改用mktime()函數來做,mktime()函數格式如下:
[color=Magenta]mktime() 函數格式[/color][code]int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])[/code]使用mktime()函數設定Cookie到期時間:[code]//在2009年1月1日消滅
setcookie("myname","charles",mktime(0,0,0,1,1,2009));
//在2010年10月5日上午10點消滅
setcookie("myname","charles",mktime(10,0,0,10,5,2010));[/code]

小誌 發表於 2011-4-19 18:11

[color=Magenta]實做學習2[/color]:
延續實做學習1,為Cookies 物件建立使用期限,證明Cookies 物件確實是儲存在瀏覽連線者的瀏覽器之中。
ex6_6.php[code]<?
ob_start();
if (!isset($_COOKIE["mynum"]))
  {
   echo "這是您第1次來";
   $life = mktime(10,0,0,10,5,2010);
   setcookie("mynum",1,$life);
  }
else
  {
   $num=$_COOKIE["mynum"];
   $num++;
   echo "這是您第 " . $num . "次來<br>";
   $life = mktime(10,0,0,10,5,2010);
   setcookie("mynum",$num,$life);
  }
?>[/code]啟動瀏覽器,開始瀏覽ex6_6.php,此時我們將會發現在『C:\Documents and Settings\XXX\ Local Settings\Temporary Internet Files』目錄中的快取記憶中不但有範例ex6_6的程式網頁暫存檔,同時還多出Cookie 的物件檔案!這次因為我們有設定Cookie物件的到期日為Cookie物件使用後到失效期限內內都有效,因此,該Cookie物件會以一個文字檔案的格式存在於瀏覽器中。
[attach]5560[/attach]
圖6-10   文字檔案格式的Cookie記錄檔。


[color=Red]提示!![/color]所有的Cookie檔案都有一個預設的網域與路徑,只有建立此Cookie的網域與路徑才能存取這個Cookie檔案。

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供