PHP setcookie() 函數向客戶端發送一個 HTTP cookie。cookie 是由服務器發送到浏覽器的變量。cookie 通常是服務器嵌入到用戶計算機中的小文本文件。每當計算機通過浏覽器請求一個頁面,就會發送這個 cookie。cookie 的名稱指定為相同名稱的變量。例如,如果被發送的 cookie 名為 "name",會自動創建名為 $user 的變量,包含 cookie 的值。
必須在任何其他輸出發送前對 cookie 進行賦值。如果成功,則該函數返回 true,否則返回 false。
setcookie(name, value, expire, path, domain, secure)
可以通過 $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 // 輸出個別的 cookie echo $_COOKIE["TestCookie"]; echo "<br />"; echo $HTTP_COOKIE_VARS["TestCookie"]; echo "<br />"; // 輸出所有 cookie print_r($_COOKIE); ?> </body> </html>
程序輸出:
my cookie value my cookie value Array ([TestCookie] => my cookie value)
程序3:
通過把失效日期設置為過去的日期/時間,刪除一個 cookie:
<?php // 把失效日期設置為一小時前 setcookie ("TestCookie", "", time() - 3600); ?>
程序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 />"; } } ?>
程序輸出:
three : cookiethree two : cookietwo one : cookieone
程序5:
/** * 01.cookie設置 * */ function ssetcookie($var, $value, $life=0) { global $_SGLOBAL, $_SC, $_SERVER; setcookie($_SC['cookiepre'].$var, $value, $life?($_SGLOBAL['timestamp']+$life):0, $_SC['cookiepath'], $_SC['cookiedomain'], $_SERVER['SERVER_PORT']==443?1:0); }