setcookie之前 输入一段东西
我在网上看cookie相关的东西
有到很多都这么说
tcookie() 定义一个和其余的 HTTP 标头一起发送的 cookie。和其它标头一样,cookie 必须在脚本的任何其它输出之前发送(这是协议限制)。这需要将本函数的调用放到任何输出之前,包括 和
标签以及任何空格。如果在调用 setcookie() 之前有任何输出,本函数将失败并返回 FALSE。如果 setcookie() 函数成功运行,将返回 TRUE。这并不说明用户是否接受了 cookie。
就是说setcookie之前不能有输出 不然设置cookie就不成功
但是我自己试的时候 总是成功
我哪里出错了.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br />
<?php<br />
var_dump(setcookie("axvvvva","xxxx"));<br />
?><br />
<html xmlns="http://www.w3.org/1999/xhtml"><br />
<head><br />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br />
<title></title><br />
</head><br />
<br />
<body><br />
<br />
</body><br />
</html>
登入後複製
------最佳解决方案--------------------这表示你的输出缓冲区是打开的
php5.3 默认 output_buffering = 4096
只有
output_buffering = 0
才是关闭的,也才会出现那些错误
php5.2及以下好像默认是关闭的,不记得了
------其他解决方案--------------------因为你的php有输出缓冲区
------其他解决方案--------------------有时间协议限制就是个屁,session 也是前面不让输出。很多时间图省事,直接@session_start(); 还不是这样用了~
------其他解决方案--------------------lz给的好像不是php代码,,代码贴出来看看。。。
按照http协议的话,如果在输出协议头之前输出了实体(entity),http协议包就被破坏了,所以在输出内容后输出的头就不会起作用了。(根据协议猜的,不知道具体是不是)
------其他解决方案--------------------
在下面有一段php的东东
嗯 是缓冲区的问题 学习了...