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

rating

Problem with "headers already sent" errors

Thread began 10/28/2010 1:54 am by SaladoGuy | Last modified 10/28/2010 2:07 pm by Jason Byrnes | 1082 views | 5 replies |

SaladoGuyBeta Tester

Problem with "headers already sent" errors

I've been developing on a Mac (DW CS5, eCart 5) and testing on a Linux web server.
The site has been working fine on both platforms.

In the past few weeks I've made a few changes. The site is still working fine on my Mac development platform (I use Apple's apache) but when I uploaded the new chagnes to the Linux test server I have been getting errors on some pages about "headers already sent".

I looked up some info on the web and found a lot of talk about not having spaces or even line returns between PHP tags, or else making sure start_session() happens at the top of the page. I tried both things, and they seemed to help fix the problem (the error stopped showing up).

Than, later, for various reasons I ended up taking those changes back out (I put line breaks between php tags), and strangely enough the pages continued to work without showing errors.

Now, however, I have one last page that is showing the "headers already sent" error and I cannot fix it. I'm really not able to remove all the spaces and returns for the whole page all the way down to where the problem is (line 291).

The exact error I'm getting on this page (checkout_success.php) is:

Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in /var/www/clients/client5/web9/web/checkout_success.php on line 291

The file is attached.

Can you please let me know what I can do to fix this error?

Sign in to reply to this post

Dave BuchholzBeta Tester

I develop in almost exactly the same environment except I use MAMP Pro rather than the inbuilt Apache Server.

I also had trouble with this issue and what I ended up doing was adding an extra page to the checkout process that stored the order before transferring to the checkout success page and then putting this code at the top of my checkout_success.php file

php:
<?php

// Initialize the session. 
session_start(); 

//store the sessions required for this page
$userSession $_SESSION['clientID'];
$orderNumber $_SESSION['orderID'];

session_destroy();  
unset(
$_SESSION); 
session_start(); 
session_regenerate_id();

//reset user session 
session_start();
$_SESSION['clientID'] = $userSession;
$_SESSION['orderID'] = $orderNumber;
?>



Then pull the order and customer information from the database to display on the page and at the bottom of the page destroy the remaining session variables.

Sign in to reply to this post

SaladoGuyBeta Tester

Dave I really appreciate the reply.

I would like a Web Assist tech to repsond if possible and tell me what's wrong with the current page. I could add another page if it was absolutely the only solution, but the checkout process is already many pages long, I really don't want to add another one.

Does anyone know what it is that actually causes this problem?

To me, it is very strange that all the other pages work fine and just a couple of them display this error ... what causes it?

Thanks

Sign in to reply to this post

Jason ByrnesWebAssist

change:
<?php session_regenerate_id(); ?>


to:
<?php @session_regenerate_id(); ?>

Sign in to reply to this post

SaladoGuyBeta Tester

Amazing! Thank you Jason that fixed it. I've been pulling my hair out over this one for almost 24 hours now.

Could you please provide some technical instruction about what the @ does and why it fixes the problem - I would like to understand it better.

I saw your recommendation to use the @ in some similar posts on this forum (@setcookie ....) but I didn't know exactly where to put it in my case.

Sign in to reply to this post

Jason ByrnesWebAssist

the @ suppresses errors.


it basically means do something, but if an error is encountered, don't display it an d keep moving.

Sign in to reply to this post

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

Content

rating

Layout

rating

Ease of use

rating

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...