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 相关文章推荐
MySQL授权问题总结
May 06 PHP
php 仿Comsenz安装效果代码打包提供下载
May 09 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
Apr 26 PHP
高性能PHP框架Symfony2经典入门教程
Jul 08 PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 PHP
php实现的常见排序算法汇总
Sep 08 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 PHP
PHP输出XML格式数据的方法总结
Feb 08 PHP
PHP绕过open_basedir限制操作文件的方法
Jun 10 PHP
PHP数组遍历的几种常见方式总结
Feb 15 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脚本的10个技巧(3)
2006/10/09 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
js函数般调用正则
2008/04/08 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
jquery实现的一个文章自定义分段显示功能
2014/05/23 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
python实现嵌套列表平铺的两种方法
2018/11/08 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
C和C++经典笔试题附答案解析
2014/08/18 面试题
业务总经理岗位职责
2014/02/03 职场文书
护士毕业生自荐信
2014/02/07 职场文书
学校工作推荐信范文
2014/07/11 职场文书
导游词之太原天龙山
2020/01/02 职场文书
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python
python 详解turtle画爱心代码
2022/02/15 Python