(PHP 4, PHP 5, PHP 7)
setcookie — 锟斤拷锟斤拷 Cookie
$name
[, string $value
= ""
[, int $expire
= 0
[, string $path
= ""
[, string $domain
= ""
[, bool $secure
= false
[, bool $httponly
= false
]]]]]] ) : boolsetcookie() 锟斤拷锟斤拷锟斤拷 Cookie锟斤拷锟斤拷锟绞o拷碌锟� HTTP 头一锟斤拷锟酵革拷锟酵伙拷锟剿★拷 锟斤拷锟斤拷锟斤拷 HTTP 头一锟斤拷锟斤拷锟斤拷锟斤拷锟节脚憋拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟�之前锟斤拷锟斤拷 Cookie锟斤拷锟斤拷锟斤拷协锟斤拷锟斤拷锟斤拷疲锟斤拷锟� 锟斤拷锟节诧拷锟斤拷锟轿猴拷锟斤拷锟街帮拷锟斤拷锟斤拷锟� <html> 锟斤拷 <head> 锟斤拷锟竭空格)碉拷锟矫憋拷锟斤拷锟斤拷锟斤拷
一锟斤拷锟斤拷锟斤拷 Cookie 锟斤拷锟铰次达拷页锟斤拷时锟斤拷锟斤拷使锟斤拷 $_COOKIE 锟斤拷取锟斤拷 Cookie 值同锟斤拷也锟斤拷锟斤拷锟斤拷 $_REQUEST锟斤拷
» RFC 6265 锟结供锟斤拷 setcookie() 每锟斤拷锟斤拷锟斤拷锟侥参匡拷锟斤拷准锟斤拷
name
Cookie 锟斤拷锟狡★拷
value
Cookie 值锟斤拷
锟斤拷锟街碉拷锟斤拷锟斤拷锟斤拷没锟斤拷牡锟斤拷锟斤拷铮拷锟斤拷鸫⒋锟斤拷锟斤拷锟斤拷锟较拷锟�
锟斤拷锟斤拷 name
锟斤拷 'cookiename'锟斤拷
锟斤拷通锟斤拷 $_COOKIE['cookiename'] 锟斤拷取锟斤拷锟斤拷值锟斤拷
expire
Cookie 锟侥癸拷锟斤拷时锟戒。 锟斤拷锟角革拷 Unix 时锟斤拷锟斤拷锟斤拷锟� Unix 锟斤拷元锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷时锟斤拷 1970 锟斤拷 1 锟斤拷 1 锟斤拷 00:00:00锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 也锟斤拷锟斤拷说锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 time() 锟斤拷锟斤拷锟侥斤拷锟斤拷锟斤拷锟较o拷锟斤拷锟斤拷诘锟斤拷锟斤拷锟斤拷锟� 锟斤拷锟斤拷也锟斤拷锟斤拷锟斤拷 mktime()锟斤拷 time()+60*60*24*30 锟斤拷锟斤拷锟斤拷锟斤拷 Cookie 30 锟斤拷锟斤拷锟节★拷 锟斤拷锟斤拷锟斤拷贸锟斤拷悖拷锟斤拷吆锟斤拷圆锟斤拷锟斤拷锟� Cookie 锟斤拷锟节会话锟斤拷锟斤拷时锟斤拷锟节o拷也锟斤拷锟角关碉拷锟斤拷锟斤拷锟绞憋拷锟斤拷锟�
Note:
锟斤拷锟斤拷锟阶拷獾斤拷耍锟�
expire
使锟斤拷 Unix 时锟斤拷锟斤拷锟斤拷锟� Wdy, DD-Mon-YYYY HH:MM:SS GMT 锟斤拷锟斤拷锟斤拷锟斤拷锟节革拷式锟斤拷锟斤拷锟斤拷为 PHP 锟节诧拷锟斤拷锟斤拷转锟斤拷锟斤拷
path
Cookie 锟斤拷效锟侥凤拷锟斤拷锟斤拷路锟斤拷锟斤拷
锟斤拷锟矫筹拷 '/' 时锟斤拷Cookie 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 domain
锟斤拷效锟斤拷
锟斤拷锟斤拷锟斤拷贸锟� '/foo/'锟斤拷 Cookie 锟斤拷锟斤拷锟斤拷 domain
锟斤拷 /foo/ 目录锟斤拷锟斤拷锟斤拷目录锟斤拷效锟斤拷锟斤拷锟斤拷 /foo/bar/锟斤拷锟斤拷
默锟斤拷值锟斤拷锟斤拷锟斤拷 Cookie 时锟侥碉拷前目录锟斤拷
domain
Cookie 锟斤拷锟斤拷效锟斤拷锟斤拷/锟斤拷锟斤拷锟斤拷锟斤拷 锟斤拷锟矫筹拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 'www.example.com'锟斤拷锟斤拷锟斤拷使 Cookie 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟叫э拷锟斤拷锟斤拷锟� w2.www.example.com锟斤拷锟斤拷 要锟斤拷 Cookie 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷效锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷全锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷只要锟斤拷锟矫筹拷锟斤拷锟斤拷锟酵匡拷锟斤拷锟剿o拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟� 'example.com'锟斤拷锟斤拷
锟缴帮拷锟斤拷锟斤拷锟斤拷锟饺伙拷锟绞癸拷梅锟斤拷锟斤拷锟� » RFC 2109锟斤拷 锟斤拷要一锟斤拷前锟矫的碉拷 . 锟斤拷匹锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
secure
锟斤拷锟斤拷锟斤拷锟� Cookie 锟角凤拷锟斤拷锟酵拷锟斤拷锟饺拷锟� HTTPS 锟斤拷锟接达拷锟斤拷锟酵伙拷锟剿★拷
锟斤拷锟矫筹拷 TRUE
时锟斤拷只锟叫帮拷全锟斤拷锟接达拷锟斤拷时锟脚伙拷锟斤拷锟斤拷 Cookie锟斤拷
锟斤拷锟斤拷锟斤拷诜锟斤拷锟斤拷锟斤拷舜锟斤拷锟斤拷锟斤拷锟斤拷锟襟,筹拷锟斤拷员锟斤拷要锟斤拷锟斤拷锟节帮拷全锟斤拷锟斤拷锟较凤拷锟酵达拷锟斤拷 Cookie
锟斤拷通锟斤拷 $_SERVER["HTTPS"] 锟叫断o拷锟斤拷
httponly
锟斤拷锟矫筹拷 TRUE
锟斤拷Cookie 锟斤拷锟斤拷通锟斤拷 HTTP 协锟斤拷锟斤拷省锟�
锟斤拷锟斤拷思锟斤拷锟斤拷 Cookie 锟睫凤拷通锟斤拷锟斤拷锟斤拷 JavaScript 锟斤拷锟斤拷锟侥脚憋拷锟斤拷锟皆凤拷锟绞★拷
要锟斤拷效锟斤拷锟斤拷 XSS 锟斤拷锟斤拷时锟斤拷锟斤拷锟斤拷锟饺★拷锟轿拷锟斤拷山锟斤拷锟斤拷么锟斤拷锟斤拷茫锟斤拷锟饺伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷支锟街o拷锟斤拷锟斤拷锟斤拷锟斤拷锟剿碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷椤�
PHP 5.2.0 锟斤拷锟斤拷印锟�
TRUE
锟斤拷 FALSE
锟斤拷锟斤拷诘锟斤拷帽锟斤拷锟斤拷锟斤拷锟角帮拷筒锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷setcookie() 锟斤拷锟斤拷锟绞э拷懿锟斤拷锟斤拷锟� FALSE
锟斤拷
锟斤拷锟� setcookie() 锟缴癸拷锟斤拷锟叫o拷锟斤拷锟斤拷 TRUE
锟斤拷锟斤拷然锟斤拷锟斤拷锟斤拷锟斤拷思锟斤拷锟斤拷锟矫伙拷锟角凤拷锟窖斤拷锟斤拷 Cookie锟斤拷
锟斤拷锟斤拷 Cookie 锟侥硷拷锟斤拷锟斤拷锟接o拷
Example #1 setcookie() 锟斤拷锟斤拷锟斤拷锟斤拷
<?php
$value = 'something from somewhere';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); /* 1 小时锟斤拷锟斤拷 */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
?>
注锟解:锟节凤拷锟斤拷 Cookie 时锟斤拷值锟侥诧拷锟街会被锟皆讹拷 urlencode 锟斤拷锟诫。锟秸碉拷 Cookie 时锟斤拷锟斤拷锟皆讹拷锟斤拷锟诫,锟斤拷锟斤拷值锟斤拷锟缴憋拷锟� Cookie 锟斤拷锟斤拷锟较★拷 锟斤拷锟斤拷锟斤拷氡伙拷锟斤拷耄拷锟斤拷锟绞癸拷锟� setrawcookie() 锟斤拷锟斤拷——锟斤拷锟斤拷锟斤拷 PHP 锟芥本锟斤拷 5 锟斤拷锟斤拷锟较★拷 锟节脚憋拷锟斤拷榭达拷锟斤拷堑牟锟斤拷锟� Cookie 锟斤拷锟斤拷锟捷o拷使锟斤拷锟斤拷锟斤拷锟揭伙拷锟斤拷锟斤拷樱锟�
<?php
// 锟斤拷印一锟斤拷锟斤拷锟斤拷锟斤拷 Cookie
echo $_COOKIE["TestCookie"];
// debug/test 锟介看锟斤拷锟斤拷 Cookie 锟斤拷锟斤拷一锟街凤拷式
print_r($_COOKIE);
?>
Example #2 setcookie() 删锟斤拷锟斤拷锟斤拷
要删锟斤拷一锟斤拷 Cookie锟斤拷应锟斤拷锟斤拷锟矫癸拷锟斤拷时锟斤拷为锟斤拷去锟斤拷锟皆达拷锟斤拷锟斤拷锟斤拷锟斤拷锟缴撅拷锟斤拷锟斤拷啤锟� 锟斤拷锟斤拷锟斤拷锟斤拷锟秸故撅拷锟斤拷锟斤拷删锟斤拷锟较革拷锟斤拷锟斤拷锟斤拷锟� Cookie锟斤拷
<?php
// 锟斤拷锟矫癸拷锟斤拷时锟斤拷为一锟斤拷小时前
setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1);
?>
Example #3 setcookie() 锟斤拷锟斤拷锟斤拷
通锟斤拷锟斤拷 array 锟斤拷堑锟� Cookie 锟斤拷锟狡o拷也锟斤拷锟皆帮拷 Cookie 锟斤拷锟矫筹拷锟斤拷锟介。 锟斤拷锟斤拷锟斤拷锟斤拷锟皆拷兀锟斤拷锟斤拷园锟斤拷锟斤拷沤锟� Cookie 锟斤; 锟脚憋拷锟斤拷锟秸碉拷时锟斤拷Cookie 锟斤拷锟斤拷锟斤拷锟街碉拷锟斤拷锟揭伙拷锟斤拷锟斤拷椋�
<?php
// 锟斤拷锟斤拷 Cookie
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");
// 锟斤拷页刷锟铰后,达拷印锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $name => $value) {
$name = htmlspecialchars($name);
$value = htmlspecialchars($value);
echo "$name : $value <br />\n";
}
}
?>
锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�
three : cookiethree two : cookietwo one : cookieone
锟芥本 | 说锟斤拷 |
---|---|
5.5.0 | 锟斤拷锟酵革拷锟酵伙拷锟剿碉拷 Set-Cookie 头锟斤拷锟节伙拷锟斤拷锟� Max-Age 锟斤拷锟皆★拷 |
5.2.0 |
锟斤拷锟� httponly 锟斤拷锟斤拷锟斤拷
|
Note:
要锟节碉拷锟矫憋拷锟斤拷锟斤拷前锟斤拷锟斤拷锟斤拷荩锟斤拷锟斤拷锟绞癸拷锟斤拷锟斤拷锟斤拷锟藉:锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷诜锟斤拷锟斤拷锟斤拷锘猴拷锟斤拷锟斤拷锟斤拷锟� 直锟斤拷锟斤拷锟斤拷锟斤拷锟酵革拷锟斤拷锟斤拷锟斤拷锟� 锟斤拷锟节脚憋拷锟斤拷锟斤拷锟� ob_start() 锟斤拷 ob_end_flush()锟斤拷 锟斤拷锟斤拷锟斤拷 output_buffering php.ini 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷募锟斤拷锟斤拷锟斤拷锟斤拷指锟筋。
Note:
锟斤拷锟� PHP 指锟斤拷 register_globals 锟斤拷锟矫筹拷 on锟斤拷Cookie 值锟斤拷锟皆讹拷锟斤拷锟矫成憋拷锟斤拷锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟� $TestCookie锟斤拷 锟斤拷锟斤拷锟狡硷拷锟斤拷使锟斤拷 $_COOKIE锟斤拷
注锟斤拷芸樱锟�
expire
锟斤拷锟斤拷锟斤拷锟矫的★拷
直锟接碉拷锟斤拷 print_r($_COOKIE); 锟斤拷锟皆硷拷锟� Cookie 锟角革拷锟杰好的凤拷式锟斤拷
FALSE
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟较次碉拷锟斤拷 setcookie 锟皆撅拷一锟斤拷锟斤拷
锟斤拷指锟斤拷锟斤拷锟斤拷锟狡会被远锟教客伙拷锟斤拷删锟斤拷锟斤拷
锟节诧拷锟斤拷实锟斤拷锟角o拷锟斤拷值锟斤拷锟矫筹拷 'deleted'锟斤拷锟斤拷锟揭癸拷锟斤拷时锟斤拷锟斤拷一锟斤拷前锟斤拷
FALSE
锟结导锟斤拷 Cookie 锟斤拷删锟斤拷锟斤拷锟斤拷锟斤拷要锟斤拷锟斤拷使锟矫诧拷锟斤拷值锟斤拷
锟斤拷锟芥方式锟斤拷0 锟斤拷 FALSE
锟斤拷1 锟斤拷 TRUE
锟斤拷
锟斤拷蔚锟斤拷锟� setcookie() 锟结按锟斤拷锟斤拷顺锟斤拷执锟叫★拷