Reply to Re: Cannot modify header information - headers already sent by

Your name:

Reply:


Posted by Colin McKinnon on 06/22/06 22:17

maya wrote:

> yes I know, this has been asked many times, but I don't quite the
> answers: usu. answers are to put the redirect code -- in my case
>
> $URL =
> "out.php?msg=selected+records+have+been+deleted+from+the+database.";
> header("Location: $URL");
>
> BEFORE any HTML output (does this include 'echo' output's?)
>

Yes - everything outside of <?php ... ?> and every print and echo inside.

> but: if, like in my case, for example, I delete data (passed in req)
> from db

So how does that cause output to the browser?

> THEN I redirect pg back to referer, how can I put redirect code
> BEFORE anything else?

Using a POST/GET redirection pattern is messy even when you know what you
are doing. And if you knew what you were doing you wouldn't use
header("Location:...") for the redirection like that. It may have become
standard practice for HTTP/1.0 but just plain wrong for HTTP/1.1. Have a
google for discussion on the topic.

> <html><head>css.. etc.. </head><body>
> php: do db stuff... then:
> mysql_close($conn);
> echo "<br><br><b>connection to db closed.</b><br><br><br>\n\n";
> $URL =
> "out.php?msg=selected+records+have+been+deleted+from+the+database.";
> header("Location: $URL"); ?>
> </body>
> </html>
>

Try doing the php stuff before you do <html>. You can work around it by
using output buffering but you're just digging a bigger hole for yourself
if you do by making your code more complex and jumbled than it needs to be.

> (this is not a serious problem since can do with JavaScript, but just
> wondering what the deal is here... in Java you do redirect with RESPONSE
> object,

php != java
php != asp
php != perl
php != ecmascript
php != Visual BASIC

If you want to write a framework of objects so it behaves similarly - then
do so - its quite possible. You can even recreate those fun null reference
errors (memory leaks, application server recycles, and horrendous build /
deployment cycles are much harder to emulate though).

Or a better idea might be to go find a templating system.

C.

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация