【问题标题】:php apache unable to set cookiephp apache无法设置cookie
【发布时间】:2018-06-16 05:04:50
【问题描述】:

我无法在托管其他网站的同一台服务器上的新网站上成功设置 cookie,而不会出现此问题。

整个文件,前后没有多余的空格

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
setcookie("test", "Hello", time()+3600);
?>

我没有收到任何反馈,错误。检查 php/apache 错误日志并没有显示任何内容。尝试了多个浏览器,但从未设置过 cookie。没有 .htaccess,apache 虚拟主机是其他站点的副本,这些站点没有任何特殊更改或任何东西。从这一点开始,我不知道要检查什么或如何调试。有什么想法吗?

正在发送来自网络选项卡的响应 cookie:

这是在 setcookie 上带有路径和域的响应标头

HTTP/1.1 200 OK
Date: Fri, 15 Jun 2018 20:46:23 GMT
Server: Apache
Strict-Transport-Security: max-age=63072000; includeSubDomains
X-Frame-Options: SAMEORIGIN
Set-Cookie: test=Hello; expires=Fri, 15-Jun-2018 21:46:23 GMT; Max-Age=3600; path=/; domain=MYSITE.com;HttpOnly;Secure
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

这里是没有路径和域的变化 设置Cookie:测试=你好;过期=格林威治标准时间 2018 年 6 月 15 日星期五 21:50:47; Max-Age=3600;HttpOnly;安全

无论哪种方式,查看为网站存储的 cookie,它仍然是空白的。在代码中,我无法在第二页刷新时访问它们。

【问题讨论】:

  • 进行网络标签检查。检查您的请求返回的标头。看看 cookie 有没有。还将路径参数添加为“/”,以确保无论路径如何,都可以在整个域中访问 c​​ookie。
  • @jancha 响应包括我将在上面发布的 cookie 信息。但是,查看站点 cookie,它们对浏览器仍然不存在。
  • @jancha 我也尝试了“/”并添加了域名等相同的结果。
  • 是什么让您认为 cookie 不可用?您是否在浏览器中检查了资源选项卡?你能看到那里的饼干吗?以及您是如何阅读 cookie 的?
  • @jancha 是的,存储下没有 cookie -> cookie。我检查了开发者控制台和浏览器 cookie/隐私设置。我在 firefox、chrome 和 edge 中得到了相同的结果。并且在 PHP 中 $_COOKIE 是空的。

标签: php apache cookies


【解决方案1】:

总结 - 您在访问不安全的网站时似乎正在设置安全 cookie。考虑将secure设置为false:

setcookie("test", "Hello", time()+3600, "/", null, false);

【讨论】:

  • 看起来服务器不允许设置不安全的cookie,它忽略了错误。然而,这是一个不同的问题,至少我有一点要追查现在出现的其他问题。该站点没有 ssl,但通过无效证书 https 访问它,它以某种方式在服务器上加载了一个不同的网站,这又是另一个需要追踪的奇怪问题,但我可以继续前进。谢谢。
  • 它实际上是一个共享 IP,我没有设置 443 虚拟主机,这就是它加载不同站点的原因,如果其他人发生这种情况,仅供参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-02
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
  • 2011-09-05
相关资源
最近更新 更多