Solve PHP error: Cannot modify header information - headers already sent

Home -> Programming -> Web -> PHP

42199 views

From the computer of: qmchenry (338 recipes)
Created: Jul 10, 2006


3 comments:
View all comments

Add a comment

Add to:
Add to stumbleuponAdd to del.icio.usDigg itAdd to FURL

This error message is commonly seen by programmers starting to use PHP. Understanding why this error occurs will help find the solution.

PHP handles lots of the work of generating web pages for you, without you even having to ask. A web page is composed of two parts, the header and the body.

The header is generally stuff that you don't need to worry about, is generated automatically, and contains information about the page, the server, related cookies, and so on. The header information is important, but it is not typically seen by the user. Here are some examples:

Date: Mon, 10 Jul 2006 18:51:59 GMT
Server: Apache/2.2.0 (Unix) mod_ssl/2.2.0 OpenSSL/0.9.7g
Content-Encoding: gzip
Content-Type: text/html


Sometimes programmers want to change some of the header values. For example, if the PHP if generating XML output, the Content-Type should be changed to reflect this. Another common example is in redirecting the user's browser to a different web page using the Location header element as described in this Tech-Recipe.

The header must come first in the response from a web server and is separated from the body by one blank line. The reason this error occurs is that some part of the body of the web page has been sent to the user already when a request is made to set a header value. Because PHP simplifies many things for you, the problem may be hiding in plain site. Here are some guidelines for finding the problem:

    1) Find the header() statement that is causing the problem. The error must be at or before this line.

    2) Look for any statements that could send output to the user before this header statement. If you find one or more, find some way to move the header statement before them. Complex conditional statements may complicate the issue, but they may also help solve the problem. Consider a conditional expression at the top of the PHP script that determines the header value as early as possible and sets it there.

    3) Make sure there is no white space outside of the php start and end tags. While a blank line before the <?php start tag may look innocent, when processed by PHP, it will turn into an echo statement printing out a blank line. This is a common culprit.

Subscribe to the Tech-Recipes Newsletter

You can get tips like this delivered in your email every week!

Enter your Email

We will never, ever sell your email address or spam you.




3 Recipe comments: View comments

Solve PHP error: Cannot modify header information - headers by noman
Cannot modify header information solution (only suggestion) by mgingco
Re: Cannot modify header information solution (only suggesti by seema



Related recipes:

  PHP: Set or create a simple browser cookie with setcookie
  Redirect to another web page using PHP
  Solve PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried...
  PHP: Print the current year for copyright notices
  PHP: Generate Dynamic Images from Text
  PHP: Upload Files to the server
  PHP syntax: iterate over an associative array
  PHP: determine the directory path of the server root
  PHP: Delete or unlink a file on the server
  PHP: Rename or move a file on the server

 

Sponsored links

 

Login

Nickname

Password

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.