>백엔드 개발 >PHP 튜토리얼 > setcookie事先 输入一段东西

setcookie事先 输入一段东西

WBOY
WBOY원래의
2016-06-13 13:04:501125검색

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协议包就被破坏了,所以在输出内容后输出的头就不会起作用了。(根据协议猜的,不知道具体是不是)
------其他解决方案--------------------
引用:
lz给的好像不是php代码,,代码贴出来看看。。。

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


在下面有一段php的东东
嗯 是缓冲区的问题  学习了...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.