PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

php怎么使用setcookie()设置cookie永不过期

青灯夜游
青灯夜游 原创
2021-09-30 16:39:45 3196浏览

在php中,只需要设置setcookie()函数第三个参数的值一直大于系统当前时间即可,语法“setcookie("cookie_name", "cookie_value", time()+99*365*24*3600);”。

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

PHP里面设置cookie的时候,如果没有指定有效期,则生存周期为浏览器会有期间,也可以称为不存盘,浏览器关闭后再次打开就没有了。

如果给cookie设置一个比较久的有效期(一直大于系统当前时间),则可让cookie永不过期。而setcookie()函数的第三个参数$expire就是用来设置cookie有效期的。例如下面代码:

setcookie("cookie_name", "cookie_value", time() + 99 * 365 * 24 * 3600);

说明:

setcookie() 函数的语法格式如下:

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

参数说明如下:

  • $name:设置 Cookie 的名称;
  • $value:可选参数,用来设置 Cookie 的值。可以通过 $_COOKIE['$name'] 的形式来获取 $value 的值;
  • $expire:可选参数,用来设置 Cookie 的过期时间,这个时间是 Unix 时间戳的形式。如果设置成零或者忽略该参数,Cookie 会在会话结束时过期(也就是关掉浏览器时);
  • $path:可选参数,用来设置 Cookie 有效的服务器路径。 设置成 '/' 时,Cookie 对整个域名 $domain 有效。 如果设置成'/foo/',则 Cookie 仅仅对 $domain 中 /foo/ 目录及其子目录有效(比如 /foo/bar/)。默认值为设置 Cookie 时的目录;
  • $domain:可选参数,用来设置 Cookie 的有效域名/子域名。设置成子域名(例如 'c.biancheng.net'),会使 Cookie 对这个子域名和它的三级域名有效(例如 php.c.biancheng.net)。 要让 Cookie 对整个域名有效(包括它的全部子域名),只要设置成域名就可以了(例如 'biancheng.net');
  • $secure:可选参数,用来设置这个 Cookie 是否仅仅通过安全的 HTTPS 连接传给客户端。设置成 TRUE 时,只有安全连接存在时才会设置 Cookie;
  • $httponly:可选参数,设置成 TRUE 时,Cookie 仅可通过 HTTP 协议访问,也就是说 Cookie 无法通过类似 JavaScript 这样的脚本语言访问。设置该参数可以有效的减少受到 XSS 攻击的风险。

time()返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数。

推荐学习:《PHP视频教程

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。