新聞中心

不過在設(shè)置 Cookie 之前必須了解的是,Cookie 是 HTTP 響應(yīng)頭的一部分,而響應(yīng)頭必須在頁而其他內(nèi)容之前發(fā)送,它必須最先輸出。若在 setcookie() 函數(shù)前輸出一個 HTML 標(biāo)記或 echo 語句,甚至一個空行都會導(dǎo)致程序出錯。
setcookie() 函數(shù)的語法格式如下:
setcookie(string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]])
參數(shù)說明如下:
- $name:設(shè)置 Cookie 的名稱;
- $value:可選參數(shù),用來設(shè)置 Cookie 的值??梢酝ㄟ^ $_COOKIE['$name'] 的形式來獲取 $value 的值;
- $expire:可選參數(shù),用來設(shè)置 Cookie 的過期時間,這個時間是 Unix 時間戳的形式。如果設(shè)置成零或者忽略該參數(shù),Cookie 會在會話結(jié)束時過期(也就是關(guān)掉瀏覽器時);
- $path:可選參數(shù),用來設(shè)置 Cookie 有效的服務(wù)器路徑。 設(shè)置成 '/' 時,Cookie 對整個域名 $domain 有效。 如果設(shè)置成'/foo/',則 Cookie 僅僅對 $domain 中 /foo/ 目錄及其子目錄有效(比如 /foo/bar/)。默認(rèn)值為設(shè)置 Cookie 時的目錄;
- $domain:可選參數(shù),用來設(shè)置 Cookie 的有效域名/子域名。設(shè)置成子域名(例如 'c.biancheng.net'),會使 Cookie 對這個子域名和它的三級域名有效(例如 php.c.biancheng.net)。 要讓 Cookie 對整個域名有效(包括它的全部子域名),只要設(shè)置成域名就可以了(例如 'biancheng.net');
- $secure:可選參數(shù),用來設(shè)置這個 Cookie 是否僅僅通過安全的 HTTPS 連接傳給客戶端。設(shè)置成 TRUE 時,只有安全連接存在時才會設(shè)置 Cookie;
- $httponly:可選參數(shù),設(shè)置成 TRUE 時,Cookie 僅可通過 HTTP 協(xié)議訪問,也就是說 Cookie 無法通過類似 JavaScript 這樣的腳本語言訪問。設(shè)置該參數(shù)可以有效的減少受到 XSS 攻擊的風(fēng)險。
注意:如果在調(diào)用 setcookie() 函數(shù)以前產(chǎn)生了輸出,setcookie() 會調(diào)用失敗并返回 FALSE。 如果 setcookie() 成功運行,則會返回 TRUE。
【示例】使用 setcookie() 函數(shù)創(chuàng)建 Cookie。
';
print_r($_COOKIE);
?>
運行結(jié)果如下:
Array
(
[Website] => C語言中文網(wǎng)
[Title] => Cookie
[Url] => http://c.biancheng.net/php/
)
提示:當(dāng)?shù)谝淮芜\行這個腳本文件時并不會有任何輸出信息,因此設(shè)置完 Cookie 后需要刷新一下頁面,這樣在下次請求時 HTTP 頭部才會攜帶上一次設(shè)置的 Cookie 信息,這時才能讀取到 Cookie。
網(wǎng)頁題目:PHP設(shè)置Cookie
本文URL:http://fisionsoft.com.cn/article/dhjsido.html


咨詢
建站咨詢
