定義和用法
setcookie() 函數向客戶端發送一個 HTTP cookie。
cookie 是由服務器發送到浏覽器的變量。cookie 通常是服務器嵌入到用戶計算機中的小文本文件。每當計算機通過浏覽器請求一個頁面,就會發送這個 cookie。
cookie 的名稱指定為相同名稱的變量。例如,如果被發送的 cookie 名為 "name",會自動創建名為 $user 的變量,包含 cookie 的值。
必須在任何其他輸出發送前對 cookie 進行賦值。
如果成功,則該函數返回 true,否則返回 false。
語法
setcookie(name,value,expire,path,domain,secure) 參數 描述
name 必需。規定 cookie 的名稱。
value 必需。規定 cookie 的值。
expire 可選。規定 cookie 的有效期。
path 可選。規定 cookie 的服務器路徑。
domain 可選。規定 cookie 的域名。
secure 可選。規定是否通過安全的 HTTPS 連接來傳輸 cookie。
提示和注釋
注釋:可以通過 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 來訪問名為 "user" 的 cookie 的值。
注釋:在發送 cookie 時,cookie 的值會自動進行 URL 編碼。接收時會進行 URL 解碼。如果你不需要這樣,可以使用 setrawcookie() 代替。
例子
例子 1
設置並發送 cookie:
<?php$value = "my cookie value";// 發送一個簡單的 cookie
setcookie("TestCookie",$value);
?><html><body>......
<?php$value = "my cookie value";// 發送一個 24 小時候過期的 cookie
setcookie("TestCookie",$value, time()+3600*24);
?><html><body>......
例子 2
檢索 cookie 值的不同方法:
<html><body><?php// 輸出個別的 cookieecho $_COOKIE["TestCookie"];echo "<br />";echo $HTTP_COOKIE_VARS["TestCookie"];echo "<br />";// 輸出所有 cookieprint_r($_COOKIE);?></body></html>
輸出:
my cookie valuemy cookie valueArray ([TestCookie] => my cookie value)
例子 3
通過把失效日期設置為過去的日期/時間,刪除一個 cookie:
<?php// 把失效日期設置為一小時前
setcookie ("TestCookie", "", time() - 3600);
?><html><body>......
例子 4
創建一個數組 cookie:
<?php
setcookie("cookie[three]","cookiethree");setcookie("cookie[two]","cookietwo");setcookie("cookie[one]","cookieone");
// 輸出 cookie (在重載頁面後)if (isset($_COOKIE["cookie"])) { foreach ($_COOKIE["cookie"] as $name => $value) { echo "$name : $value <br />"; } }?><html><body>......
輸出:
three : cookiethreetwo : cookietwoone : cookieone