问候。我在PHP中设置了一个cookie,但它不是用标头发送的
我试图在浏览器cookie中保存用户的会话ID。我一遍又一遍地进行了测试,并且在头部之前发送的空白或任何其他信息没有任何问题。
我的应用程序有一个入口点(index.php)并处理查询字符串来调用控制器/ etc。当我到我的主页面时,没有看到cookie,所以它显示用户登录页面。当我通过XDebug跟踪这一点时,一旦我点击提交,哪些POST回到index.php。当此POST回来时,来自先前登录的cookie将被发送到页面!但是,由于它试图处理POST信息,我的脚本再次设置cookie。当它重定向回主页(即没有POST或其他参数的index.php)时,不会发送cookie。
我已经调试过,看遍了整个地方,无法弄清楚,想知道如果有人有任何明智的想法。
注意: 我在setcookie()中设置路径为'/'。另外,我使用mod_rewrite和.htaccess来制作SEO友好的URL。不过,我没有尝试过它,它似乎并不重要...
代码段:
这样写:
setcookie(self::SESSION_COOKIE, $this->session_id, time()+60*60*24*30, '/', 'localhost');
要访问:
$_COOKIE[self::SESSION_COOKIE];
感谢您的帮助 -
你确定你'输出任何东西之前会调用'setcookie()函数?如果您已经发送了任何内容,那么标题已发送,您不能再设置cookie。在这种情况下你应该得到一个警告。 – 2013-12-03 19:17:29