close ad
Databridge V2 with MySQLi support IS Now Available!
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

Troubleshooting the Headers Already Sent PHP Error

Thread began 3/03/2011 11:10 am by Jason Byrnes | Last modified 8/10/2018 3:22 am by Jason Byrnes | 15304 views | 9 replies

Jason ByrnesWebAssist

Troubleshooting the Headers Already Sent PHP Error

The Dreaded Headers Already Sent error message may appear on your page:

  Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /Applications/MAMP/htdocs/supportSite/events_Results.php:6) in /Applications/MAMP/htdocs/supportSite/events_Results.php on line 9  

Put simply, the cause of the error is output on the page before the PHP session_start() or header() functions are used.

But how do you make it go away? the Key to fixing this issue is to look closely at the part in parentheses, this tells you where to look for the output:

  (output started at /Applications/MAMP/htdocs/supportSite/events_Results.php:6)  

this tells me to look at line 6 of the events_Results.php page.

In the first screen shot that I have attached, you can see that there is a closing PHP Tag (?>) at line 4. Line 5 is a blank line and line 6 is a new opening php tag (<?php).

it is the blank line at line 5 that is causing the error to occur.

If you dont see a blank line, it could be a blank space. In the second screen shot, I have enabled Hidden Characters (View -> Code View Options -> Hidden Characters), this shows line breaks and spaces in the code. This shows that line 4 has a closing PHP tag followed by a blank space before the line break. that blank space after the closing PHP Tag:
"?> "

Will cause the headers Already sent error as well.

Not just blank space, but actual text between php code blocks:


hello world

or HTML comments:


<!-- this is an html comment -->

can cause the error.

There are 2 other causes of the Headers already sent error besides output to the page. Look for these causes if the output is reported at line 1 in the error:
1) Using the virtual() function to include php files instead of require once:

<?php virtual('Connections/connEAF.php'); ?>

In Dreamweaver's site settings panel, the Local Info tab has a settings for "Links relative To" if you select Site Root (see the third screen shot), Dreamweaver will use the virtual() function for including files. You should set this to Document instead so that Dreamweaver will use the require_once() function.

2) The Unicode Signature (BOM) PHP bug. the forth screen shot shows the Title / Encoding category of the Page Properties screen (Modify - > Page Properties). Checking the Include Signature (BOM) option can cause the headers already sent error

Build websites with a little help from your friends

Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.

Build websites from already-built web applications

These out-of-the-box solutions provide you proven, tested applications that can be up and running now.  Build a store, a gallery, or a web-based email solution.

Want your website pre-built and hosted?

Close Windowclose

Rate your experience or provide feedback on this page

Account or customer service questions?
Please user our contact form.

Need technical support?
Please visit support to ask a question





Ease of use


security code refresh image

We do not respond to comments submitted from this page directly, but we do read and analyze any feedback and will use it to help make your experience better in the future.

Close Windowclose

We were unable to retrieve the attached file

Close Windowclose

Attach and remove files

add attachmentAdd attachment
Close Windowclose

Enter the URL you would like to link to in your post

Close Windowclose

This is how you use right click RTF editing

Enable right click RTF editing option allows you to add html markup into your tutorial such as images, bulleted lists, files and more...

-- click to close --

Uploading file...