PHP setcookie() 函數(shù)

2018-11-21 16:30 更新

PHP setcookie() 函數(shù)


PHP HTTP 參考手冊(cè) 完整的 PHP HTTP 參考手冊(cè)

定義和用法

setcookie() 函數(shù)向客戶端發(fā)送一個(gè) HTTP cookie。

cookie 是由服務(wù)器發(fā)送到瀏覽器的變量。cookie 通常是服務(wù)器嵌入到用戶計(jì)算機(jī)中的小文本文件。每當(dāng)同一臺(tái)計(jì)算機(jī)通過瀏覽器請(qǐng)求頁面時(shí),就會(huì)發(fā)送這個(gè) cookie。

cookie 的名稱自動(dòng)指定為相同名稱的變量。例如,如果被發(fā)送的 cookie 名為 "user",則會(huì)自動(dòng)創(chuàng)建一個(gè)名為 $user 的變量,包含 cookie 的值。

必須在任何其他輸出發(fā)送到客戶端前對(duì) cookie 進(jìn)行賦值。

如果成功,該函數(shù)返回 TRUE。如果失敗則返回 FALSE。

語法

setcookie(name,value,expire,path,domain,secure)

參數(shù) 描述
name 必需。規(guī)定 cookie 的名稱。
value 必需。規(guī)定 cookie 的值。
expire 可選。規(guī)定 cookie 的過期時(shí)間。

time()+3600*24*30 將設(shè)置 cookie 的過期時(shí)間為 30 天。如果這個(gè)參數(shù)沒有設(shè)置,那么 cookie 將在 session 結(jié)束后(即瀏覽器關(guān)閉時(shí))自動(dòng)失效。

path 可選。規(guī)定 cookie 的服務(wù)器路徑。

如果路徑設(shè)置為 "/",那么 cookie 將在整個(gè)域名內(nèi)有效.如果路徑設(shè)置為 "/test/",那么 cookie 將在 test 目錄下及其所有子目錄下有效。默認(rèn)的路徑值是 cookie 所處的當(dāng)前目錄。

domain 可選。規(guī)定 cookie 的域名。

為了讓 cookie 在 example.com 的所有子域名中有效,您需要把 cookie 的域名設(shè)置為 ".example.com"。當(dāng)您把 cookie 的域名設(shè)置為 www.example.com 時(shí),cookie 僅在 www 子域名中有效。

secure 可選。規(guī)定是否需要在安全的 HTTPS 連接來傳輸 cookie。如果 cookie 需要在安全的 HTTPS 連接下傳輸,則設(shè)置為 TRUE。默認(rèn)是 FALSE。


提示和注釋

提示:可以通過 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 來訪問名為 "user" 的 cookie 的值。

注釋:在發(fā)送 cookie 時(shí),cookie 的值會(huì)自動(dòng)進(jìn)行 URL 編碼。接收時(shí)會(huì)自動(dòng)進(jìn)行 URL 解碼。如果您不需要這樣,可以使用 setrawcookie() 代替。


實(shí)例 1

設(shè)置并發(fā)送 cookie:

<?php
$value = "my cookie value";

// send a simple cookie
setcookie("TestCookie",$value);
?>

<html>
<body>

...
...

<?php
$value = "my cookie value";

// send a cookie that expires in 24 hours
setcookie("TestCookie",$value, time()+3600*24);
?>

<html>
<body>

...
...


實(shí)例 2

檢索 cookie 值的不同方法(在 cookie 設(shè)置之后):

<html>
<body>

<?php
// Print individual cookies
echo $_COOKIE["TestCookie"];
echo "<br />";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br />";

// Print all cookies
print_r($_COOKIE);
?>

</body>
</html>

上面的代碼將輸出:

my cookie value
my cookie value
Array ([TestCookie] => my cookie value)


實(shí)例 3

通過把失效日期設(shè)置為過去的日期/時(shí)間,刪除一個(gè) cookie:

<?php
// Set the expiration date to one hour ago
setcookie ("TestCookie", "", time() - 3600);
?>

<html>
<body>

...
...


實(shí)例 4

創(chuàng)建一個(gè)數(shù)組 cookie:

<?php
setcookie("cookie[three]","cookiethree");
setcookie("cookie[two]","cookietwo");
setcookie("cookie[one]","cookieone");

// print cookies (after reloading page)
if (isset($_COOKIE["cookie"]))
{
foreach ($_COOKIE["cookie"] as $name => $value)
{
echo "$name : $value <br />";
}
}
?>

<html>
<body>

...
...

上面的代碼將輸出:

three : cookiethree
two : cookietwo
one : cookieone


PHP HTTP 參考手冊(cè) 完整的 PHP HTTP 參考手冊(cè)
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)