PHP 设置 cookie 本地主机不起作用


PHP set cookie localhost not working

问题是我无法从PHP设置cookie。我试图谷歌问题并在堆栈溢出上搜索,但是没有一个解决方案有效。

我试过:

setcookie('user_id', $row['user_id'], time() + ( 60 * 60 * 8), '/', '127.0.0.1');
setcookie('user_id', $row['user_id'], false, '/', false);
setcookie('user_id', $row['user_id'], time() + ( 60 * 60 * 8), '/', false);
setcookie('user_id', $row['user_id'], time() + ( 60 * 60 * 8), '/', '');

我使用的浏览器是Apache服务器上的Firefox 12和Chrome 19。

感谢您的帮助。

编辑:当我获取数据以放入cookie时,我的数据库似乎有问题,所以没关系;感谢您抽出宝贵时间!

您确定在该代码之前没有输出吗?所有echo和所有include,包括不完全是PHP代码的东西都被视为输出。

setcookie()调用之前无法输出任何内容的原因很简单。要设置 Cookie,服务器必须向浏览器发送标头指令。如果内容正文已打印出来,则无法发送该标头。

您可以更改代码以将该调用放在任何输出之前,也可以简单地在代码开头放置一个ob_start()。该函数导致 PHP 缓冲所有输出,并在脚本结束时仅发送一个输出。