Cannot modify header information错误解决方法


Posted in PHP onOctober 08, 2008

<?php
ob_start();
setcookie("username","宋岩宾",time()+3600);
echo "the username is:".$HTTP_COOKIE_VARS["username"]."\n";
echo "the username is:".$_COOKIE["username"]."\n";
print_r($_COOKIE);
?>
Warning: Cannot modify header information - headers already sent by出错的原因
我在php程序的头部加了,
header("cache-control:no-cache,must-revalidate");
之后页面就出现上面的错误,看了N个资料也没有结果。今天偶尔发现原来是我的php.ini里面的配置出了问题,在C:\windows\下找到php.ini文件
output_buffering默认为off的。我现在把它设为4096就OK了。
用于解决显示提示错误,不能按(日期+导出文件数)为文件名的错误信息.
setcookie函数必?在任何?料?出至浏览器前,就先送出
基於上面?些限制,所以?绦?etcookie()函??r,常??龅?Undefined index"、"Cannot modify header information - headers already sent by"…等???,解?Q"Cannot modify header information - headers already sent by"?????的方法是在?生cookie前,先延??料?出至?g?器,因此,您可以在程式的最前方加上ob_start();???函?怠
ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车\空格\换行\都会有"Header had all ready send by"的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出.当然打开缓冲区的作用很多,只要发挥你的想象.可以总结以下四点:

1.用于header()之前

ob_start(); //打开缓冲区
echo \"Hellon\"; //输出
header("location:index.php"); //把浏览器重定向到index.php
ob_end_flush();//输出全部内容到浏览器
?>

2.phpinfo()函数可获取客户端和服务器端的信息,但要保存客户端信息用缓冲区的方法是最好的选择.
ob_start(); //打开缓冲区
phpinfo(); //使用phpinfo函数
$info=ob_get_contents(); //得到缓冲区的内容并且赋值给$info
$file=fopen(\'info.txt\',\'w\'); //打开文件info.txt
fwrite($file,$info); //写入信息到info.txt
fclose($file); //关闭文件info.txt
?>

3.静态页面技术
ob_start();//打开缓冲区
?>
php页面的全部输出
$content = ob_get_contents();//取得php页面输出的全部内容
$fp = fopen("output00001.html", "w"); //创建一个文件,并打开,准备写入
fwrite($fp, $content); //把php页面的内容全部写入output00001.html,然后……
fclose($fp);
?>

4.输出代码
Function run_code($code) {
If($code) {
ob_start();
eval($code);
$contents = ob_get_contents();
ob_end_clean();
}else {
echo "错误!没有输出";
exit();
}
return $contents;
}

PHP 相关文章推荐
PHP脚本的10个技巧(8)
Oct 09 PHP
PHP Ajax中文乱码问题解决方法
Feb 27 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
PHP加密技术的简单实现
Sep 04 PHP
centos 7.2下搭建LNMP环境教程
Nov 20 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
Feb 04 PHP
PHP获取文件扩展名的方法实例总结
Jun 10 PHP
Laravel下生成验证码的类
Nov 15 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 22 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 #PHP
php 友好URL的实现(吐血推荐)
Oct 04 #PHP
PHP注释实例技巧
Oct 03 #PHP
使用eAccelerator加密PHP程序
Oct 03 #PHP
一些使用频率比较高的php函数
Oct 03 #PHP
PHP base64+gzinflate压缩编码和解码代码
Oct 03 #PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 #PHP
You might like
PHP禁止个别IP访问网站
2013/10/30 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
字符串的replace方法应用浅析
2011/12/06 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
JS实现吸顶特效
2020/01/08 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
小程序实现图片移动缩放效果
2020/05/26 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
python numpy格式化打印的实例
2018/05/14 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
为什么要做架构设计
2015/07/08 面试题
华为python面试题
2016/05/03 面试题
银行先进个人总结
2015/02/15 职场文书
小学运动会报道稿
2015/07/22 职场文书
python requests模块的使用示例
2021/04/07 Python
试了下Golang实现try catch的方法
2021/07/01 Golang