php setcookie()

作者admin

10月 28, 2024

setcookie() 是 PHP 中用于设置 cookie 的函数。

Cookie 是在客户端(通常是 Web 浏览器)存储的小型数据片段,用于跟踪用户的会话信息、首选项等。

setcookie() 函数用于在服务器发送 HTTP 标头中设置一个或多个 cookie。

语法

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

参数

  1. name(必需):指定要设置的 cookie 的名称。
  2. value(可选):指定要设置的 cookie 的值。如果未指定值,则默认为 NULL
  3. expire(可选):指定 cookie 的过期时间。这是一个 Unix 时间戳,指定 cookie 的到期日期和时间。默认情况下,cookie 的过期时间是用户会话结束时(浏览器关闭)。
  4. path(可选):指定 cookie 可以访问的路径。如果设置了路径,则只有位于该路径下的页面才能访问该 cookie。默认情况下,cookie 在设置它的目录及其所有子目录中可用。
  5. domain(可选):指定 cookie 的域。如果设置了域,该域及其子域中的所有页面都可以访问该 cookie。默认情况下,cookie 仅在设置它的域中可用。
  6. secure(可选):布尔值,指定是否仅通过 HTTPS 连接发送 cookie。默认值为 false,表示可以通过 HTTP 连接发送。
  7. httponly(可选):布尔值,指定是否限制 cookie 仅通过 HTTP 协议访问,而不允许客户端脚本(如 JavaScript)访问。这有助于减少跨站点脚本(XSS)攻击的风险。默认为 false

domain参数说明

域名是互联网上标识实体(通常是服务器)的字符串。它由一系列标签组成,这些标签通过点号 . 分隔。例如,域名 example.com 包含两个标签,examplecom

domain 参数为空时,意味着该 cookie 仅限于设置它的当前域名。

例如,如果您在 example.com 上设置了一个 domain 为空的 cookie,那么只有 example.com 下的页面才能访问该 cookie,而 subdomain.example.comexample.net 下的页面则无法访问。

如果要使 cookie 在整个域名下的页面都可用,可以将 domain 参数设置为顶级域名,例如 .example.com。这样做将使 cookie 在 example.com 以及其所有子域(如 subdomain.example.com)下的页面都可用。

path参数说明

1、设置在整个域名下都可用的 cookie

// 设置一个名为 “user” 的 cookie,值为 “John”,过期时间为 1 小时,整个域名下的所有页面都可访问
setcookie(“user”, “John”, time()+3600, “/”);

2、设置在特定目录下可用的 cookie:

// 设置一个名为 “language” 的 cookie,值为 “en”,过期时间为 1 小时,只有 “/docs” 路径下的页面可访问
setcookie(“language”, “en”, time()+3600, “/docs”);

3、设置在子目录中可用的 cookie

// 设置一个名为 “theme” 的 cookie,值为 “dark”,过期时间为 1 小时,只有 “/docs/articles” 路径下的页面可访问
setcookie(“theme”, “dark”, time()+3600, “/docs/articles”);

作者 admin

百度广告效果展示