Board logo

標題: 6-2-2 設定Cookies物件的使用期限 [打印本頁]

作者: 小誌    時間: 2011-4-19 18:09     標題: 6-2-2 設定Cookies物件的使用期限

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


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

作者: 小誌    時間: 2011-4-19 18:11

實做學習2
延續實做學習1,為Cookies 物件建立使用期限,證明Cookies 物件確實是儲存在瀏覽連線者的瀏覽器之中。
ex6_6.php
  1. <?
  2. ob_start();
  3. if (!isset($_COOKIE["mynum"]))
  4.   {
  5.    echo "這是您第1次來";
  6.    $life = mktime(10,0,0,10,5,2010);
  7.    setcookie("mynum",1,$life);
  8.   }
  9. else
  10.   {
  11.    $num=$_COOKIE["mynum"];
  12.    $num++;
  13.    echo "這是您第 " . $num . "次來<br>";
  14.    $life = mktime(10,0,0,10,5,2010);
  15.    setcookie("mynum",$num,$life);
  16.   }
  17. ?>
複製代碼
啟動瀏覽器,開始瀏覽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記錄檔。


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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)