PHP提示Cannot modify header information - headers already sent by解决方法_php技巧

本文实例讲述了PHP提示Cannot modify header information - headers already sent by解决方法,是进行PHP程序设计过程中经常会遇到的问题。本文对此以实例形式分析解决方法。分享给大家供大家参考。具体方法如下:

现来看看这段代码:

<?php
ob_start();
setcookie("username","test",time()+3600);
echo "the username is:".$HTTP_COOKIE_VARS["username"]."\n";
echo "the username is:".$_COOKIE["username"]."\n";
print_r($_COOKIE);
?>

访问该PHP文件时提示Warning: Cannot modify header information - headers already sent by

出错的原因:

原因是在php程序的头部加了,header("content-type: text/html; charset=utf-8");之后页面就出现上面的错误。

因为 header('Content-Type:text/html;charset= UTF-8');发送头之前不能有任何输出,空格也不行,你需要将header(...)之前的空格去掉,或者其他输出的东西去掉,如果他上面include其他文件了,你还要检查其他文件里是否有输出。

上网查了一些资料,说是我的php.ini里面的配置出了问题,找到php.ini文件中的output_buffering默认为off的,把它改为on或者任意一个数字,但尝试无结果。

setcookie函数必須在任何资料输出至浏览器前,就先送出
基于上面這些限制,所以執行setcookie()函数时,常会碰到"Undefined index"、"Cannot modify header information - headers already sent by"…等问题,解決"Cannot modify header information - headers already sent by"这个错误的方法是在产生cookie前,先延缓资料输出至浏览器,因此,您可以在程序的最前方加上ob_start()函數。

ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车\空格\换行\都会有"Header had all ready send by"的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出!

通过以下方法,问题得到解决:

//在header()之前

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

希望本文所述对大家PHP程序设计的学习有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, 提示
, header
, Headers
, 解决方法
, by
, cannot
, already
, sent
, modify
information
headers already sent、modify headers.xpi、modify headers、modify headers怎么用、modify headers插件,以便于您获取更多的相关知识。

时间: 2024-10-03 23:41:11

PHP提示Cannot modify header information - headers already sent by解决方法_php技巧的相关文章

PHP错误Warning: Cannot modify header information - headers already sent by解决方法_php实例

今天在测试以下代码时遇到该错误: 复制代码 代码如下: session_start(); $_SESSION['username']=$username; echo "<script language='javascript'>location.href='../admin.php';</script>"; exit(); 出现错误: 复制代码 代码如下: Warning: Cannot modify header information - headers a

php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法_php技巧

本文实例讲述了php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法.分享给大家供大家参考.具体如下: ZipArchive是php自带的一个压缩与解压缩函数了,今天理所当然的情况中使用new ZipArchive来创建zip文件时碰到提示Fatal error: Class ZipArchive not found in错误,感兴趣的朋友就一起来看看解决方法. 测试代码如下: 复制代码 代码如下: //PHP解压缩文件(

PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法_php技巧

本文实例讲述了PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法.分享给大家供大家参考.具体分析如下: 今天在一朋友服务器测试一个网站时发现我在测试phpinfo时碰到PHP Warning:phpinfo() has been disabled for security reasons 提示了,按话的意思我总结了解决办法,下面我们一起来看看吧. 在运行phpinfo时碰到提示如下:PHP Warning: phpinfo() has been d

PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法_php技巧

本文实例讲述了PHP提示 Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法,在PHP程序开发中常会遇到这类问题.分享给大家供大家参考,具体的解决方法如下: 将下面代码改为mysqli或PDO即可. function connectit () { global $CFG; mysql_connect($CFG['db_host'], $CFG['db_user'], $CFG['db_pass']) or die

php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法_php技巧

说是已经有输出,用编辑器打,前面明明什么都没有,原来在使用AJAX的 时候,也出现过这种情况,后来,把这个PHP文件放到linux中打开,会发现,在文件的最前面,会出现"锘 "这样的一个字符(引号内),把它去掉以后,再运行,OK,运行正常.后来在网上搜索一些文件,给的解释是:UTF8文件的BOM(Byte Order Mark)标志,在保存的时候会自动存入! 不管它是干嘛的,现在的目的就是把它去掉,我总结的方法有下面三种: 1. 在Linux下打开,去掉后再保存 2. 用写字板打开,把

PHP setcookie() cannot modify header information 的解决方法_php技巧

使用setcookie()函数时总是报以下错误: Warning: Cannot modify header information - headers already sent by.... 解决办法如下: 方法一: 在PHP里Cookie的使用是有一些限制的. 1.使用setcookie必须在<html>标签之前 2.使用setcookie之前,不可以使用echo输入内容 3.直到网页被加载完后,cookie才会出现 4.setcookie必须放到任何资料输出浏览器前,才送出 .....

Cannot modify header information错误解决方法_php技巧

<?php ob_start(); setcookie("username","宋岩宾",time()+3600); echo "the username is:".$HTTP_COOKIE_VARS["username"]."\n"; echo "the username is:".$_COOKIE["username"]."\n"; pr

PHP Header失效的原因分析及解决方法_php实例

在PHP中用header("location:test.php")进行跳转要注意以下几点: 1.location和":"号间不能有空格,否则会出错. 2.在用header前不能有任何的输出,包括include的页面中标签"?>"后不能有空格!! 3.header后的PHP代码还会被执行. 续: 问题:header函数前输入内容 一般来说在header函数前不能输出html内容,类似的还有setcookie() 和 session 函数,这些

JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法_javascript技巧

本文实例讲述了JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法.分享给大家供大家参考,具体如下: Uncaught SyntaxError: Unexpected token ILLEGAL 未捕获的语法错误: 意想不到的非法令牌 如下图所示: 复制代码 代码如下: <input id="btn_0_4EAE4F474C91156086C0D4EA7E983C69C215B649" type="butt