日期:2014-05-17  浏览次数:20586 次

setcookie之前 输入一段东西
我在网上看cookie相关的东西
有到很多都这么说
tcookie() 定义一个和其余的 HTTP 标头一起发送的 cookie。和其它标头一样,cookie 必须在脚本的任何其它输出之前发送(这是协议限制)。这需要将本函数的调用放到任何输出之前,包括 <html> 和 <head> 标签以及任何空格。如果在调用 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">
<?php
var_dump(setcookie("axvvvva","xxxx"));
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>

<body>

</body>
</html>

------最佳解决方案--------------------
这表示你的输出缓冲区是打开的
php5.3 默认 output_buffering = 4096
只有
output_buffering = 0
才是关闭的,也才会出现那些错误
php5.2及以下好像默认是关闭的,不记得了
------其他解决方案--------------------
因为你的php有输出缓冲区
------其他解决方案--------------------
有时间协议限制就是个屁,session 也是前面不让输出。很多时间图省事,直接@session_start(); 还不是这样用了~
------其他解决方案--------------------
lz给的好像不是php代码,,代码贴出来看看。。。

按照http协议的话,如果在输出协议头之前输出了实体(entity),http协议包就被破坏了,所以在输出内容后输出的头就不会起作用了。(根据协议猜的,不知道具体是不是)
------其他解决方案--------------------
引用:
lz给的好像不是php代码,,代码贴出来看看。。。

按照http协议的话,如果在输出协议头之前输出了实体(entity),http协议包就被破坏了,所以在输出内容后输出的头就不会起作用了。(根据协议猜的,不知道具体是不是)


在<html>下面有一段php的东东
嗯 是缓冲区的问题  学习了...