PHP setrawcookie() 函式
示例
以下示例使用 PHP 建立了一個 cookie。該 cookie 的名稱是“user”,值為“John Doe”。Cookie 值不會進行 URL 編碼。Cookie 將在 30 天后過期(86400 * 30)。使用“/”表示 cookie 在整個網站中都可用(否則,請選擇您喜歡的目錄)
<?php
$cookie_name = "user";
$cookie_value = "John";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 天
?>
<html>
<body>
<?php
echo "Cookie 已設定。";
?>
</body>
</html>
?>
自己動手試一試 »
定義和用法
setrawcookie() 函式定義了一個 cookie(不進行 URL 編碼),以便與其餘的 HTTP 標頭一起傳送。
Cookie 通常用於識別使用者。Cookie 是伺服器嵌入使用者計算機中的一個小檔案。每次同一臺計算機使用瀏覽器請求頁面時,它也會發送 cookie。使用 PHP,您可以同時建立和檢索 cookie 值。
Cookie 的名稱會自動分配給同名的變數。例如,如果傳送了一個名為“user”的 cookie,會自動建立一個名為 $user 的變數,其中包含 cookie 的值。
注意: setrawcookie() 函式必須出現在 <html> 標籤之前。
注意: 要傳送時自動進行 URL 編碼 cookie 值,並在接收時自動解碼,請改用 setcookie() 函式。
語法
setrawcookie(name, value, expire, path, domain, secure);
引數值
| 引數 | 描述 |
|---|---|
| name | 必需。指定 cookie 的名稱 |
| value | 可選。指定 cookie 的值 |
| expire | 可選。指定 cookie 何時過期。值為 time()+86400*30,會將 cookie 設定為在 30 天后過期。如果未設定此引數,則 cookie 將在會話結束時(關閉瀏覽器時)過期 |
| path | 可選。指定 cookie 的伺服器路徑。如果設定為“/”,則 cookie 在整個域中可用。如果設定為“/php/”,則 cookie 僅在 php 目錄和 php 的所有子目錄中可用。預設值是設定 cookie 的當前目錄 |
| domain | 可選。指定 cookie 的域名。要使 cookie 在 example.com 的所有子域中可用,請將 domain 設定為“.example.com”。將其設定為 www.example.com 將僅使 cookie 在 www 子域中可用 |
| secure | 可選。指定 cookie 是否只能透過安全的 HTTPS 連線傳輸。TRUE 表示只有在存在安全連線的情況下才會設定 cookie。預設為 FALSE。 |
技術詳情
| 返回值 | 成功時為 TRUE。失敗時為 FALSE |
|---|---|
| PHP 版本 | 5+ |
更多示例
示例
檢索名為“user”的 cookie 的值(使用全域性變數 $_COOKIE)。還使用 isset() 函式來檢視 cookie 是否存在
<html>
<body>
<?php
$cookie_name = "user";
if(!isset($_COOKIE[$cookie_name])) {
echo "名為 '" . $cookie_name . "' 的 Cookie 不存在!";
} else {
echo "Cookie 名稱: " . $cookie_name . "<br>值是: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
自己動手試一試 »
示例
要修改 cookie,只需使用 setrawcookie() 函式(重新)設定 cookie
<?php
$cookie_name = "user";
$cookie_value = "Alex";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
$cookie_name = "user";
if(!isset($_COOKIE[$cookie_name])) {
echo "名為 '" . $cookie_name . "' 的 Cookie 不存在!";
} else {
echo "Cookie 名稱: " . $cookie_name . "<br>值是: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
自己動手試一試 »
示例
要刪除 cookie,請使用將過期日期設為過去的 setrawcookie() 函式
<?php
$cookie_name = "user";
unset($_COOKIE[$cookie_name]);
// 值為空,過期時間提前一小時
$res = setrawcookie($cookie_name, '', time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' 已刪除。";
?>
</body>
</html>
自己動手試一試 »
示例
建立一個小指令碼來檢查 cookie 是否已啟用。首先,嘗試使用 setrawcookie() 函式建立一個測試 cookie,然後計算 $_COOKIE 陣列變數
<?php
setrawcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies 已啟用";
} else {
echo "Cookies 已停用";
}
?>
</body>
</html>
自己動手試一試 »
❮ PHP 網路參考