Hi Dave (?)

2009/3/11 revDAVE <c...@hosting4days.com>:
> Hi Bastien - Stuart & Daniel
> Thanks for your help!
> On 3/10/2009 12:16 PM, "Bastien Koert" <phps...@gmail.com> wrote:
>> Are you getting an error? What does 'not working' mean?
> No errors the page just stayed on the
> header('Location: show.php'); page - never went to: show.php

One more thing to mention: The HTTP Protocoll requires you to give a
full URL on "Location" Headers. That means that this is wrong:
"Location: file.txt"
and this is correct
"Location: http://www.x.x/file.txt";

Not all clients behave like yours and accept the wrong header.

> Q: I might have learned something.... Does the: header('Location: xxx.php');
> command need to be in the first php block? On some pages when I make multi
> php blocks into 1 big one and put the header command inside it - it seems to
> work better - is this true?
All HTTP headers must be send before your script generates *any* output.
Output means echo's, PHP Notices, etc.
If you *must* output stuff before sending an header, you can use
output buffering, see http://php.net/ob_start

> Q: Also, is it possible that extra whitespace inside the php block can cause
> the header command to not work? (I might have that happening also - looking
> into it)

Yes, *any* output - no matter if you output " " or "x" or even ":-)".

>>     Well, if the above is in fact the case (and yes, different
>> versions and installations have been known to respond differently),
>> then you can use a browser-based meta refresh, which will work for all
>> browsers anyway:

unless disabled by the user.

>> <?php
>> // .... your code....
>> header('Location: show.php');
>> echo '<meta http-equiv="refresh" content="0;show.php">';

erm .... <META> should be in a html document inside the <HEAD>, not *anywhere*.

> I tried refresh Daniel - and it worked great!
> I even added a GET var to it - worked also
> echo '<meta http-equiv="refresh" content="0;show.php?id='.$_GET[id].'">';

Very, very, very bad idea. You just opened a cross site scripting bug.

Imagine someone opens this URL

You must always escape any input you take.
see http://php.net/security

> Thanks again folks!

You're welcome.


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

Reply via email to