PHP setrawcookie() 函數

定義和用法

setrawcookie() 函數不對 cookie 值進行 URL 編碼,發送一個 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 的值。

注釋:setrawcookie() 與 setcookie() 幾乎完全相同,不同的是不會在發往客戶機時,對 cookie 值進行自動 URL 編碼。

實例

例子 1

設置并發送 cookie:

<?php
$value = "my cookie value";
// 發送一個簡單的 cookie
setrawcookie("TestCookie",$value);
?>
<html>
<body>
...
...
<?php
$value = "my cookie value";
// 發送一個 24 小時候過期的 cookie
setrawcookie("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
// 把失效日期設置為一小時前
setrawcookie ("TestCookie", "", time() - 3600);
?>
<html>
<body>
...
...

例子 4

創建一個數組 cookie:

<?php
setrawcookie("cookie[three]","cookiethree");
setrawcookie("cookie[two]","cookietwo");
setrawcookie("cookie[one]","cookieone");
// 輸出 cookie (在重載頁面后)
if (isset($_COOKIE["cookie"]))
  {
  foreach ($_COOKIE["cookie"] as $name => $value)
    {
    echo "$name : $value <br />";
    }
  }
?>
<html>
<body>
...
...

輸出:

three : cookiethree
two : cookietwo
one : cookieone