本文转载自: http://www.jb51.net/article/14108.htm
我做了一个统一的出错提示函数,在函数执行里面,先处理出错的地址写入cookie以方便用户登陆以后可以直接跳转到要执行的这个页面,可是发现在服务器上测试时,竟然提示本地没有出现的错误: Warning: Cannot modify header information - headers already sent by....
这样的语句,很显然,造成这个原因是因为setcookie造成的,查了一下网上,有如下的解释: cookie本身在使用上有一些限制,例如:
1.呼叫setcookie的敘述必須放在<html>标签之前
2.呼叫setcookie之前,不可使用echo
3.直到網頁被重新載入後,cookie才會在程式中出現
4.setcookie函数必須在任何資料輸出至浏览器前,就先送出
5.……
基於上面這些限制,所以執行setcookie()函数时,常會碰到"Undefined index"、"Cannot modify header information - headers already sent by"…等問題,解決"Cannot modify header information - headers already sent by"这个錯誤的方法是在产生cookie前,先延缓資料输出至浏览器,因此,您可以在程式的最前方加上ob_start();这个函數。这样就可以解决 了。 如果要加上ob_start()的话,不大可行,程序都写完了,才来改这个似乎有点郁闷.. 发现提示这个错误的时候,我就在想我本地怎么没提示这个问题呢,还以为是PHP.ini配置不一样,想想又不对,都是差不多的..
于是看看后面跟的那句"output started at...."意思是在setcookie之前已经在另一处有输出了,于是找到output started at后面跟的那个文件,看到第一行是空白的,然后才是<?php 这样开始,难道会是这一行的问题吗??我本地也有这一行呢,去掉,刷新再试,呵呵,果然出在这里,不再提示warning了
解决完毕!
解决方法二:
查找网上解决此问题的方法多是一样的,不过今天又遇到了这样的问题。试过之后发现可行:
在C盘的WINDOWS中找到php.ini 这个配置文件,然后查找一项:output_buffering将其值由原来的off改为on,重新启动Apache就ok了。
1.呼叫setcookie的敘述必須放在<html>标签之前
2.呼叫setcookie之前,不可使用echo
3.直到網頁被重新載入後,cookie才會在程式中出現
4.setcookie函数必須在任何資料輸出至浏览器前,就先送出
5.……
基於上面這些限制,所以執行setcookie()函数时,常會碰到"Undefined index"、"Cannot modify header information - headers already sent by"…等問題,解決"Cannot modify header information - headers already sent by"这个錯誤的方法是在产生cookie前,先延缓資料输出至浏览器,因此,您可以在程式的最前方加上ob_start();这个函數。这样就可以解决 了。 如果要加上ob_start()的话,不大可行,程序都写完了,才来改这个似乎有点郁闷.. 发现提示这个错误的时候,我就在想我本地怎么没提示这个问题呢,还以为是PHP.ini配置不一样,想想又不对,都是差不多的..
于是看看后面跟的那句"output started at...."意思是在setcookie之前已经在另一处有输出了,于是找到output started at后面跟的那个文件,看到第一行是空白的,然后才是<?php 这样开始,难道会是这一行的问题吗??我本地也有这一行呢,去掉,刷新再试,呵呵,果然出在这里,不再提示warning了
解决完毕!
解决方法二:
查找网上解决此问题的方法多是一样的,不过今天又遇到了这样的问题。试过之后发现可行:
在C盘的WINDOWS中找到php.ini 这个配置文件,然后查找一项:output_buffering将其值由原来的off改为on,重新启动Apache就ok了。
相关推荐
以下是对PHP中的Cannot modify header information问题的解决方法进行了详细的分析介绍,需要的朋友可以过来参考下
使用setcookie()函数时总是报以下错误: Warning: Cannot modify header information – headers already sent by…. 解决办法如下: 方法一: 在PHP里Cookie的使用是有一些限制的。 1、使用setcookie必须在<...
在开发Web应用时,特别是使用PHP编程语言,我们经常会遇到“Cannot modify header information - headers already sent by”错误。这个错误通常发生在脚本尝试发送HTTP头部信息(如setcookie或者header函数)时,但...
本文实例讲述了PHP提示Cannot modify header information – headers already sent by解决方法,是进行PHP程序设计过程中经常会遇到的问题。本文对此以实例形式分析解决方法。分享给大家供大家参考。具体方法如下: ...
今天在测试以下代码时遇到该错误: 复制代码 代码如下: ...Warning: Cannot modify header information – headers already sent by… 看了一些网上的方法也没解决,最后在php.ini配置output_buffering默认为4096
通过以上方法,可以有效地解决“Cannot modify header information - headers already sent by”的错误,确保`setcookie()`正常工作。在编写PHP代码时,最好将输出控制在`setcookie()`之后,同时确保文件编码正确,...
主要介绍了PHP提示Cannot modify header information - headers already sent by解决方法,是在PHP程序开发中非常典型的错误情况,非常具有实用价值,需要的朋友可以参考下
在讨论PHP编程时,我们经常会遇到一个常见的错误提示:“Warning: Cannot modify header information - headers already sent by”。这个警告通常是由于开发者在尝试发送HTTP头信息之后,又进行了输出操作而引起的。...
彼岸世界提供的themes\ips\functions.php里就有好几处地方的<?php前面有好多空格,因此只要把那些空格去掉就不会出现Warning: Cannot modify header information这种问题了。 这次发布的版本已经替换functions.php...
port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D Cannot modify header information - headers already sent by (output started at D100) in D Cannot modify header ...
### PHP header()函数使用详解 #### 标题与描述解析: PHP的header()函数主要用于在实际的HTML内容输出到浏览器之前,向浏览器发送原始的HTTP标头。这些标头可以指示浏览器对即将传输的内容进行特定处理,例如页面...
本篇文章将详细解释如何使用PHP的`header()`函数来设置浏览器缓存,涉及的主要头标包括Last-Modified、Expires、Pragma以及Cache-Control。 1. **Last-Modified**: Last-Modified头标用于指示资源的最后修改时间...
用途:主要用于整站所有文件为utf8无bom文件,个别文件却存bom,而造成的如:Warning: Cannot modify header information - headers already sent 等的错误。 如何解决BOM:先放在服务器可执行目录下,使用 浏览器http://...
9. **问题处理**:有时会出现“Cannot modify header information”错误,这通常是由于在`header`调用前已经有输出导致的。解决办法是在`<?php`标签之前避免任何输出,或者检查是否有BOM(Byte Order Mark)字符。 ...