setcookie中Cannot modify header information-headers already sent by错误的解决方法详解


Posted in PHP onMay 08, 2013
<?php
   setcookie("username","bu",time()+3600);
   echo "aaaaa";
?>

运行有警告Warning: Cannot modify header information - headers already sent by 

下面是别人建议

方法一:
在PHP里Cookie的使用是有一些限制的。
1、使用setcookie必须在<html>标签之前
2、使用setcookie之前,不可以使用echo输入内容
3、直到网页被加载完后,cookie才会出现
4、setcookie必须放到任何资料输出浏览器前,才送出
.....
由于上面的限制,在使用setcookie()函数时,学会遇到 "Undefined index"、"Cannot modify header information - headers already sent by"…等问题,解决办法是在输出内容之前,产生cookie,可以在程序的最上方加入函数 ob_start();

ob_start :打开输出缓冲区
函数格式:void ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

方法二:
解决Warning: Cannot modify header information - headers already sent by ...... 前几天装了个php的大头贴系统测试,发现报错Warning: Cannot modify header information - headers already sent by ......
今天又装openads,还是出现这个问题。怒了。上网找了半天,有人说要在文件开头写上
ob_start();
失败。
后来打开 php.ini 然后把 output_buffering 设为 on 。重起appache,OK。看来这才是解决办法。

特别注意:(我就是看了这个才解决问题的)
如果使用utf-8编码,一定要去掉UTF-8中的BOM,这都是因为utf-8编码文件含有的bom原因,而php4,5都是不支持bom的。去掉bom,可以用Notepad++打开转换一下。(我就是看了这个才解决问题的)

自己解决办法

PHP4,5 都不支持utf-8编码文件中的BOM

如果文件包含BOM,设置cookie或者session 时都会报错.
如何能快速方便的去掉文件的BOM.
推荐使用 Notepad++ 软件,非常优秀的免费软件.
1.可以在设置-->首选项-->新建 默认新建UTF-8(无BOM) 

2.如果是在别处新建的php文件,在notpad++中打开如何将编码转变成 UTF-8(无BOM)
格式-->UTF-8(无BOM)  这时就可以转码了.
PHP 相关文章推荐
PHP.MVC的模板标签系统(三)
Sep 05 PHP
使用apache模块rewrite_module (转)
Feb 14 PHP
phpMyadmin 用户权限中英对照
Apr 02 PHP
PHP中strtotime函数使用方法详解
Nov 27 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
php中字符集转换iconv函数使用总结
Oct 11 PHP
PHP文件上传判断file是否己选择上传文件的方法
Nov 10 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
Aug 11 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
Feb 10 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 PHP
imagettftext() 失效,不起作用
Mar 09 PHP
PHP 登录记住密码实现思路
May 07 #PHP
php启动时候提示PHP startup的解决方法
May 07 #PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 #PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 #PHP
wamp下修改mysql访问密码的解决方法
May 07 #PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 #PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 #PHP
You might like
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
解析wamp5下虚拟机配置文档
2013/06/27 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
javascript 避免闭包引发的问题
2009/03/17 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
python迭代器实例简析
2014/09/25 Python
Python标准异常和异常处理详解
2015/02/02 Python
Python实现句子翻译功能
2017/11/14 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
python版本单链表实现代码
2018/09/28 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
Python实现ATM系统
2020/02/17 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
记者岗位职责
2014/01/06 职场文书
工程师岗位职责规定
2014/02/26 职场文书
合伙经营协议书范本
2014/04/18 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
创业不要错过,这4种餐饮新模式
2019/07/18 职场文书
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS