【问题标题】:php setcookie does not workphp setcookie 不起作用
【发布时间】:2015-03-25 11:23:57
【问题描述】:

以下是我的测试文件。这就是它们所包含的全部内容。

文件test.php:

<?php    
setcookie("test", "test", time() + 3600);
header("Location:test2.php");

文件test2.php:

<?php
if(!isset($_COOKIE['test'])) {
    echo 'cookie not set';
} else {
    echo 'cookie set';
}

当我尝试显示 test.php 页面时,我得到“cookie not set”。 这快把我逼疯了……

这是我目前检查的内容:

  • 我使用 Safari / Chrome / Firefox 进行了测试,
  • 我的浏览器接受 cookie,
  • 正如您在我的示例中看到的那样,在调用 setcookie 函数之前没有向浏览器发送任何输出,
  • 当显示 setcookie 函数的结果时,我得到了 true,
  • 它可以在我的本地计算机上运行,​​但不能在我的服务器上运行,

最后一点让我相信服务器配置有问题?我在共享托管服务器上,所以对此我无能为力。

【问题讨论】:

  • 您能否查看您的开发者工具资源选项卡并查看是否存在 cookie?
  • 在您打开&lt;?php标签error_reporting(E_ALL); ini_set('display_errors', 1);后立即将错误报告添加到文件顶部,看看它是否会产生任何结果。
  • @Fred-ii- 我在两个文件中都添加了error_reporting(E_ALL); ini_set('display_errors', 1);。不会发生错误。 @Darren 也没有在开发者工具中设置 cookie。
  • 尝试使用域名,例如setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1); 按照手册php.net/manual/en/function.setcookie.php - 我以前也遇到过这种情况。
  • 加上点前缀以确保与子域if ( substr($domain, 0, 1) != '.' ) $domain = '.'.$domain;(如果它是子域)兼容。另请参阅stackoverflow.com/questions/5258126/…

标签: php cookies


【解决方案1】:

最后,我尝试通过 VPN 使用位于法国的 IP 地址访问我的测试页面(我的主机是法国的 OVH,我住在美国)。 Cookies 现在可以工作了。

我猜 OVH 在他们的 CDN 的某个地方搞砸了,或者我不知道是什么。我会直接和他们核实。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    相关资源
    最近更新 更多