Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在某些情况下,PHP无法从Chrome读取Cookie_Php_Google Chrome_Cookies - Fatal编程技术网

在某些情况下,PHP无法从Chrome读取Cookie

在某些情况下,PHP无法从Chrome读取Cookie,php,google-chrome,cookies,Php,Google Chrome,Cookies,这个问题出现在今天,似乎与webkit有关 在通过位置[301/302]HTTP头重定向的页面上(本例中为404个错误页面),PHP无法读取COOKIE-这意味着$\u COOKIE是一个空数组。 我知道webkit的bug,在同一个响应中使用Set Cookie和Location头会中断,但这是关于读而不是写的,所以应该在请求头中 我正在使用最新的Chrome v26。在后端,我在家庭服务器上安装了PHP5.3.10-1ubuntu3.6,在生产服务器上也安装了PHP5.3.10-1ubunt

这个问题出现在今天,似乎与webkit有关

在通过位置[301/302]HTTP头重定向的页面上(本例中为404个错误页面),PHP无法读取COOKIE-这意味着$\u COOKIE是一个空数组。

我知道webkit的bug,在同一个响应中使用Set Cookie和Location头会中断,但这是关于读而不是写的,所以应该在请求头中

我正在使用最新的Chrome v26。在后端,我在家庭服务器上安装了PHP5.3.10-1ubuntu3.6,在生产服务器上也安装了PHP5.3.10-1ubuntu3.6(我没有设置,也没有默认设置)。在生产服务器上,我不能像前面所说的那样读取cookie,但在我的home/dev服务器上,我可以读取cookie

更糟糕的是:在另一台运行PHP5.3.3-7+squeeze14的服务器上,如果内容类型头不是html,而是text/plain,我也无法读取cookies

我按以下方式设置cookies:

if (setcookie($name, $value, $expire, $path, null, isset($_SERVER['HTTPS']), $httponly))
{
    $_COOKIE[$name] = $value;
    return true;
}
return false;
  • $httponly为false
  • $path是“/”
  • 名称由小写字母组成
  • 该值由数字和破折号组成
我可以在开发者工具/资源选项卡中看到cookie,它可以在简单的html页面上正常工作

谢谢你的帮助。
谢谢。

重定向页面和重定向程序页面在同一个域中?也许这可以被认为是XSS试图窃取cookie。尝试发送“访问控制允许来源:*”标题:


在我的例子中,问题在于
session\u set\u cookie\u params()
,域的参数(第三个参数)的前缀是句点
,例如“.localhost”。当我删除
时,填充了$\u COOKIE变量。

快速解决方法不是保存新的和空的会话。但问题仍然存在。我们是否可以看到实际的setcookie调用(即所有值),请?setcookie('lwcsessid','1367271447-42780100-18814-62545',null',/',null,isset($\u SERVER['HTTPS']),false);正如我所说,cookies已经设置好,可以在不重定向的页面上读取。我还尝试指定过期日期,而不是将其留给浏览器。甚至在同一个文档根中。我认为这是因为Chrome的预回迁功能。这可能与。尝试在浏览器中禁用它。它从未启用过。没有特殊的请求头,只有常见的Accept-*、缓存控制、连接、主机、用户代理、Referer和Cookie,重定向页面除外。您可以尝试在重定向页面强制设置Cookie。使用getallheaders()读取Cookie,然后使用header进行设置(“设置Cookie:”)。您可以在“Location”标题之前立即执行此操作。$headers=getallheaders();标题(“设置Cookie:”.$headers[“Cookie”]。“路径=/”;
header("Access-Control-Allow-Origin: *" );