setcookie

(PHP 4, PHP 5, PHP 7)

setcookie锟斤拷锟斤拷 Cookie

说锟斤拷

setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] ) : bool

setcookie() 锟斤拷锟斤拷锟斤拷 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"$valuetime()+3600);  /* 1 小时锟斤拷锟斤拷  */
setcookie("TestCookie"$valuetime()+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锟斤拷

注锟斤拷芸樱锟�

  • 锟斤拷页锟芥( Cookie 锟缴硷拷锟斤拷页锟芥)锟铰达拷刷锟斤拷前锟斤拷Cookie 锟斤拷锟斤拷锟斤拷效锟斤拷 锟斤拷锟斤拷 Cookie 锟角凤拷锟窖撅拷锟缴癸拷锟斤拷锟矫o拷锟斤拷要锟斤拷锟铰达拷页锟斤拷锟斤拷锟绞憋拷锟紺ookie 锟斤拷锟斤拷前锟斤拷狻� 锟斤拷锟斤拷时锟斤拷锟斤拷通锟斤拷 expire 锟斤拷锟斤拷锟斤拷锟矫的★拷 直锟接碉拷锟斤拷 print_r($_COOKIE); 锟斤拷锟皆硷拷锟� Cookie 锟角革拷锟杰好的凤拷式锟斤拷
  • 为同一锟斤拷锟斤拷锟斤拷锟劫达拷锟斤拷锟斤拷 Cookie 前锟斤拷锟斤拷锟斤拷锟饺帮拷锟斤拷删锟斤拷锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷锟街碉拷强锟� string 锟斤拷 FALSE锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟较次碉拷锟斤拷 setcookie 锟皆撅拷一锟斤拷锟斤拷 锟斤拷指锟斤拷锟斤拷锟斤拷锟狡会被远锟教客伙拷锟斤拷删锟斤拷锟斤拷 锟节诧拷锟斤拷实锟斤拷锟角o拷锟斤拷值锟斤拷锟矫筹拷 'deleted'锟斤拷锟斤拷锟揭癸拷锟斤拷时锟斤拷锟斤拷一锟斤拷前锟斤拷
  • 锟斤拷为锟斤拷锟斤拷值锟斤拷 FALSE 锟结导锟斤拷 Cookie 锟斤拷删锟斤拷锟斤拷锟斤拷锟斤拷要锟斤拷锟斤拷使锟矫诧拷锟斤拷值锟斤拷 锟斤拷锟芥方式锟斤拷0 锟斤拷 FALSE锟斤拷1 锟斤拷 TRUE锟斤拷
  • Cookie 锟斤拷锟狡匡拷锟斤拷锟斤拷锟矫筹拷锟斤拷锟斤拷锟斤拷锟狡o拷PHP 锟脚憋拷锟斤拷锟斤拷锟斤拷锟斤拷椋� 锟斤拷锟矫伙拷系统锟斤储锟斤拷锟斤拷堑锟斤拷锟斤拷挚锟斤拷锟� Cookie锟斤拷 锟斤拷锟皆匡拷锟斤拷使锟斤拷 explode() 为一锟斤拷 Cookie 锟斤拷锟矫讹拷锟斤拷锟斤拷坪锟街碉拷锟� 锟斤拷锟斤拷锟介将 serialize() 锟斤拷锟节此达拷锟斤拷锟斤拷为锟斤拷锟结导锟铰帮拷全漏锟斤拷锟斤拷

锟斤拷蔚锟斤拷锟� setcookie() 锟结按锟斤拷锟斤拷顺锟斤拷执锟叫★拷

锟轿硷拷