PHP cookie 获取失败

服务器环境

  • php7.0

  • ubuntu 18.04

  • apache 2.4

Cookie 获取失败的原因

  • 设置的 cookie 非全局访问。默认情况下 cookie 保存路径是在当前目录下,其他目录下无法访问到这个cookie,添加第四个参数 '/' 以设置 cookie 可全局访问。如:
    setcookie( 'name', 'mini-geek', time() + 3600, '/' )

  • setcookie() 函数前面有输出。确保 setcookie() 前面不能有输出。(ps: php5.3+ 版本默认已经开启 ob 缓存,即便 setcooke() 前面有输出,也会被放在 http header 后面, 所以一般在 php 5.3+ 版本这种情况导致 cookie 的可能性比较小)

  • 设置的 cookie 时间无效。如果设置了 cookie过期时间,那么要确保这个时间不是过去的 ( 我曾经就因为没有注意而把过期时间设置为3600,导致始终读不到 cookie,正确写法是 time() + 3600 )

评论