David Martínez wrote:
I suggest you to activate "Output Buffering" at beggining of your code. It's so easy and should not modify the output of your code.
This prevents your error "Headers already sent".
At the first line of your PHP code, insert "ob_start()" and in the end of your code insert "ob_clean_flush()".

If you do not want to use "Output Buffering" you should remove any character sent, including Cr Lf (\n\r). I think it's so hard and I don't recommend it.

Depending of your server, PHP can evaluate \n\r as nothing or evaluate \n\r as an output.

Personally I disagree with this. Yes it's easy, but you should never enable a feature to fix a bug or problem when it can be tracked down (although obviously in time critical situations, using it as a 'band aid' is - sometimes - necessary). With a quick pointer he was able to find it, and not impact the performance of his web server (output buffering will take more memory - since it's obviously buffering all the output)

More importantly though, with output buffering - no content is sent to the client until you flush - in your suggestion at the end. This isn't always an issue since many scripts do much of their processing at the top anyway, but if nothing is sent to the browser - the users will (the majority of the time) see the page they "were" on, and continue interacting with it thinking their request didn't go through. This will only increase load on your server and, depending on what the users are doing (and how your backend is written) could throw someone or something into a state of confusion.

- Martin Norland, Sys Admin / Database / Web Developer, International Outreach x3257
The opinion(s) contained within this email do not necessarily represent those of St. Jude Children's Research Hospital.

PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to