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