返回列表 上一主題 發帖

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

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));
複製代碼
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

實做學習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物件會以一個文字檔案的格式存在於瀏覽器中。

圖6-10   文字檔案格式的Cookie記錄檔。


提示!!所有的Cookie檔案都有一個預設的網域與路徑,只有建立此Cookie的網域與路徑才能存取這個Cookie檔案。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題