PHP 设置 Cookie 的函数 Setcookie

2,443 阅读1分钟

Setcookie 函数

bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )
参数 注解
name Cookie 名称。
value Cookie 值。比如 name 是 'cookiename', 可通过 $_COOKIE['cookiename'] 获取它的值。
expire 过期时间,Unix 时间戳。
path Cookie 有效路径。设置成 '/' 时,对 domain 整个域名有效。如果设置成 '/user/',仅对 「domain 参数值/user/」 目录及其子目录有效。默认值是本函数所属访问地址的当前目录
domain Cookie 的生效域名。生效的域名为设置的域名以及它的全部子域。如果设置的是 w1.example.com,生效的就是 w1.example.com 和它的所有子域。如果设置的是 example.com,生效的就是 example.com 和它的所有子域。旧版浏览器仍然在使用废弃的 RFC 2109, 需要一个前置的点(.) 来匹配所有子域名。
secure 是否仅仅通过 HTTPS 连接传输。默认值 false。
httponly 是否仅仅通过 HTTP 协议访问,设置成 false 也就是不允许 JavaScript 这样的脚本语言访问。 默认值 false。

RFC 6265 对 setcookie() 每个参数的参考标准

以上是对 PHP 官方文档 setcookie 函数 内容,做了一些修改。

Setcookie Domain 代码示例

代码示例中的「可操作」代表可以使用 $_COOKIE 获得,以及可以使用 setcookie 修改(删除也是修改,把 expire 参数设置为小于当前时间的时间戳就是相当于删除了,例如 time()-86400

// example.com、*.example.com 可操作
setcookie('blog_url', '后三排-housanpai.com', time()+86400, '/', 'example.com');

// w1.example.com、*.w1.example.com 可操作
setcookie('blog_url', '后三排-housanpai.com', time()+86400, '/', 'w1.example.com');