Again "headers already sent by ".

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

I have composed the following simple php file:
<head><title> Title. </title></head>
                header("Location: ");

And result of its execution is:
Warning: Cannot modify header information - headers already sent by
(output started at /home/something/public_html/tmp1.php:4) in
/home/something/public_html/tmp1.php on line 5

I thing, that in newsgroups I found a cause of my error:
"The reason you are getting this warning is because PHP is trying to
send a header (redirecting in this case) to browser, but it cannot,
because the output has already started."

But now I do not understand what is the use of header("Location:
***");. It can be placed only in the beginning of files, and after
browser open this file it (browser) is immediatly redirected to second
file. Is it not better to open second file straight away (withou
opening the first file)? Further, what I need to do if I want to
diplay some file and than, let say in 20 second, user have to be
redirected to next file? What I need to do if I want to perform
redirection only if some variables have same defined values?

Pleas help me if you know answers.
Thank you.

Re: Again "headers already sent by ".

I noticed that Message-ID:

Quoted text here. Click to load it

Let's say you have a series of pages where you require the user to log
in.  You store the log in status as a session variable and then check
for its existence at the start of each page, before any HTML.  If it
doesn't exist you can redirect the user to the login page via the header

Quoted text here. Click to load it
Once the PHP process is over the server has no knowledge of what is
going on at the client side.  To redirect in 20 seconds requires a
client side process, ie JavaScript or meta refresh

Quoted text here. Click to load it

Put all the PHP code before any html. <?php must be absolutely the first
thing on your page.

Geoff Berrow (put thecat out to email)
It's only Usenet, no one dies.
My opinions, not the committee's, mine.
Simple RFDs /

Re: Again "headers already sent by ".

Q wrote:
Quoted text here. Click to load it

You have already created an html page with the tags, that is the output.
The headers, sent with header(), can only arrive BEFORE any other output
in the file.

What I think u are trying to do, is include html tags and php code from
tmp2.php into tmp.php.
If this is the case, try include(<your page>); in stead of header().



Site Timeline