无法在任何浏览器中设置setcookie

时间:2013-03-30 10:34:19

标签: php setcookie

所以我已经做了大量关于设置cookie的阅读,但仍然找不到我在这里做错了什么。我开始使用if语句来包含另一个脚本,但很快就明白了cookie没有设置所以我简化了它并使它只是为了回应所以我可以看到它是否正在设置。不是。我将其包含在<html>

之上

我正在设置cookie然后刷新,无论我多少次刷新它仍然在NULL命令中返回echo结果。

  • setcookie高于我的所有html,任何输出后都无法设置Cookie?
  • 已设置值和域。
  • 所有浏览器都启用了Cookie,朋友们已经为我测试了这个,所以它不是本地的。
  • 它不是服务器,我问我的主人。
  • 我甚至从PHP manual复制/粘贴代码无效。
  • 当然,检查了几百万次。

    $var='Something';
    setcookie ("Name", "$var", time()+3600, '/', 'website.com');
    echo $_COOKIE["Name"];
    var_dump($_COOKIE["Name"]);
    var_dump ($HTTP_COOKIE_VARS); 
    

echo返回NULLvar_dump返回Array(0)

我生气了,我的代码中有什么问题,我错过了什么?

2 个答案:

答案 0 :(得分:3)

设置cookie(或任何其他标头)的最常见问题是,必须在发送第一个输出字符之前设置它。在脚本之前可能有一个不可见的字符(如BOM或空格)。如果您使用includes,则可能是包含脚本的结束标记之后的空格。

答案 1 :(得分:0)

要调试cookie,必须调试HTTP头 因此,如果您可以看到服务器发送或浏览器返回的任何cookie,请使用Firebug,切换到Net选项卡并观察请求和响应标头。

如果没有cookie的痕迹 - 那么服务器端就会出现一些错误。您需要启用错误报告和显示才能看到它们

ini_set('display_errors',1);
error_reporting(E_ALL);

是一种快速而又肮脏的方式