【发布时间】:2014-11-27 22:48:40
【问题描述】:
我正在开发一个带有登录系统的网站。如果用户成功登录,则会设置一个 cookie。代码看起来有点像:
if(!success)
echo "denied";
else
setCookie(x,x,x,x,x);
现在,问题是这样的代码除了在本地测试服务器 (localhost) 上之外,无法在其他任何地方运行。现在,我的问题是,有没有标准化的方法来解决这个问题?还是开发人员必须编写自己的代码才能避免出现此类问题?
【问题讨论】:
-
'... cookie 必须在脚本的任何输出之前发送(这是协议限制)...' PHP: setcookie
-
检查这个链接PHP Cookies with Login它会帮助你
-
@user45562 谢谢。事实上,我知道就是这样。我想知道一种解决方法。
-
该代码应该能够要么发送输出或设置cookie。如果您确实在发送 cookie 之前发送输出,实际上有一种解决方法允许输出被临时缓存,然后存储在变量中或之后发送到浏览器。
-
您应该检查并确保实际的文件编码。如果 UTF-8 确保它没有 BOM,否则它可能会在浏览器执行任何 PHP 之前向浏览器发送一小段数据。这是因为引擎将第一个字节解释为原始纯文本/HTML 以发送到浏览器。这显然违反了 header() 和 setCookie() 的要求。