熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

php setcookie(name, value, expires, path, domain,

2022-06-13   來源: PHP編程 

  setcookie() 定義一個和其余的 HTTP 標頭一起發送的 cookie和其它標頭一樣cookie 必須在腳本的任何其它輸出之前發送(這是協議限制)這 需要將本函數的調用放到任何輸出之前包括 <html> 和 <head> 標簽以及任何空格如果在調用 setcookie() 之前有任何輸出本函數將失敗並返回 FALSE如果 setcookie() 函數成功運行將返回 TRUE這並不說明用戶是否接受了 cookie
函數定義
bool setcookie ( string name [ string value [ int expire [ string path [ string domain [ bool secure]]]]] )
setcookie() 參數詳解

參數        說明 舉例 name cookie的名字 使用 $_COOKIE[cookiename] 調用名為 cookiename 的 cookie value cookie的值存放在客戶端不要存放敏感數據 假定 namecookiename可以通過$_COOKIE[cookiename] 取得其值 expire

  Cookie 過期的時間這是個 Unix 時間戳即從 Unix 紀元開始的秒數  

  換而言之通常用 time() 函數再加上秒數來設定 cookie 的失效期

  或者用mktime()來實現

  time()+*** 將設定 cookie 天後失效

  如果未設定cookie 將會在會話結束後(一般是浏覽器關閉)失效

path Cookie 在服務器端的有效路徑

  如果該參數設為 / 的話cookie 就在整個 domain 內有效

  如果設為 /foo/cookie 就只在 domain 下的 /foo/ 目錄及其子目錄內有效例如 /foo/bar/

  默認值為設定 cookie 的當前目錄

domain 該 cookie 有效的域名

  要使 cookie 能在如 examplecom 域名下的所有子域都有效的話該參數應該設為 examplecom

  雖然 並不必須的但加上它會兼容更多的浏覽器

  如果該參數設為wwwexamplecom 的話就只在 www 子域內有效

  細節見Cookie 規范中的 tail matching

secure

  指明 cookie 是否僅通過安全的 HTTPS 連接傳送

  當設成 TRUEcookie 僅在安全的連接中被設置默認值為FALSE

  
例子 setcookie() 發送例子

復制代碼 代碼如下:
$value = something from somewhere;
setcookie("TestCookie" $value);
setcookie("TestCookie" $valuetime()+); /* expire in hour */
setcookie("TestCookie" $valuetime()+ "/~rasmus/" "utorontoca" );

  
注意 cookie 中值的部分在發送的時候會被自動用 urlencode 編碼並在接收到的時候被自動解碼並把值賦給與自己同名的 cookie 變量如果不想這樣並且在使用 PHP 的話可以用 setrawcookie() 來代替下面這個簡單的例子可以得到剛才所設定的 cookie 的值

復制代碼 代碼如下:
<?php
// 輸出單獨的 cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];
// 另一個調試的方法就是輸出所有的 cookie
print_r($_COOKIE);
?>

  
要刪除 cookie 需要確保它的失效期是在過去才能觸發浏覽器的刪除機制下面的例子說明了如何刪除剛才設置的 cookie
例子 setcookie() 刪除例子

復制代碼 代碼如下:
// 將過期時間設為一小時前
setcookie("TestCookie" "" time() );
setcookie("TestCookie" "" time() "/~rasmus/" "utorontoca" );

  
也可以通過在 cookie 名稱中使用數組符號來設定數組 cookie可以設定多個 cookie 作為數組單元在腳本提取 cookie 時所有的值都放在一個數組種
例子 setcookie() 中使用數組的例子

復制代碼 代碼如下:
<?php
// 設定 cookie
setcookie("cookie[three]" "cookiethree");
setcookie("cookie[two]" "cookietwo");
setcookie("cookie[one]" "cookieone");
// 刷新頁面後顯示出來
if (isset($_COOKIE[cookie])) {
foreach ($_COOKIE[cookie] as $name => $value) {
echo "$name : $value <br />n";
}
}
?>

  
上例將輸出
three : cookiethree
two : cookietwo
one : cookieone

總結cookie的基本使用不難這篇文章記錄的重點主要是掌握path的路徑設置和domain的域名設置


From:http://tw.wingwit.com/Article/program/PHP/201311/21055.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.