我有这样一段程序:
if(setcookie('me','mycookie'))
{
echo "cookie已设置";
}
echo "已登录";运行结果是"已登录”是有的,但"cookie已设置“没有显示。这说明cookie设置失败了。请问我这一段程序为什么会设置失败呢?有语法错误吗?失败的原因可能是什么?(我的浏览器支持cookie)

解决方案 »

  1.   

    如果setcookies前有输出任何东西,将返回false。
      

  2.   

    哦,你是说:设置cookie的程序,必须放在任何输出语句的前面?真的是这样?
      

  3.   

    setcookie() 定义一个和其余的 HTTP 标头一起发送的 cookie。和其它标头一样,cookie 必须在脚本的任何其它输出之前发送(这是协议限制)。这需要将本函数的调用放到任何输出之前,包括 <html> 和 <head> 标签以及任何空格。如果在调用 setcookie() 之前有任何输出,本函数将失败并返回 FALSE。如果 setcookie() 函数成功运行,将返回 TRUE。
      

  4.   

    可我刚才把它放到程序最开头,也没有用,是不是我的这条语句的问题,就是在最开头<body>语句是这样的:<body onload="scroll(0,document.body.scrollHeight)">就是滚动到最下端,跟这个有关吗?
      

  5.   

    啊!原来要放在<html>的前面,成功了!感谢!如果不是你们告诉,自己找原因,不知找到什么时候,书上并没有讲到这一点。(也许在哪个角落会讲,但是初学者不可能仔细阅读全书)。谢谢!
      

  6.   

    啊!原来要放在<html>的前面,成功了!感谢!如果不是你们告诉,自己找原因,不知找到什么时候,书上并没有讲到这一点。(也许在哪个角落会讲,但是初学者不可能仔细阅读全书)。谢谢!
    手册就有说明这个了。
    手册比任何书都重要
      

  7.   

    啊!原来要放在<html>的前面,成功了!感谢!如果不是你们告诉,自己找原因,不知找到什么时候,书上并没有讲到这一点。(也许在哪个角落会讲,但是初学者不可能仔细阅读全书)。谢谢!
    手册就有说明这个了。
    手册比任何书都重要
    你说的是哪个手册?