Ashley Sheridan wrote:
> On Wed, 2010-03-31 at 11:32 -0500, King Coffee wrote:
>> Hi,
>> I ran the following code snippet on Windows IIS 7, in my index.php file and 
>> it worked fine. But when run it on Linux, the "die" code is executed.
>> Is there an include file or something else I need to to process this on a 
>> linux server?
>> <?php
>>      echo '<h1>Redirecting... Please Wait</h1>';
>> /*
>>      redirect('welcome.html');
>> */
>>      if (!headers_sent()) {
>>              header('Location: ' . '');
>>      } else {
>>              die('Could not redirect.');
>>      }
>> ?>
>> Thanks,
>> King 
> This should never ever redirect. You've got an echo statement as your
> first line of code. Once output has been sent to the browser, PHP cannot
> send a redirect header, as the default ones get sent with the output.

problem is very very simple; simply swap the code order

// add in logic if you want
header('Location: ' . '');
echo '<h1>Redirecting... Please Wait</h1>';

but please expand including a link to where you are redirecting too.

The apache default pages are very very good and include the status
(+code) and a short note:
302 Found
The resource you requested has been found <here-link>

note: that's not the exact text, but you get the idea.

> I think maybe you'd need a Javascript redirect here, but that comes with
> a warning that you cannot rely on everyone to have Javascript available
> or enabled on their browser. People do turn it off, people do use
> plugins such as NoScript, some routers have been known to strip
> Javascript from web pages and not ever browser supports all Javascript
> (think text browsers, speech and Braille browsers, etc)

no no no; (sorry ash) but HTTP is there for a reason and it accommodates
everything we need + can be used for *any* file (how do you javascript
redirect an image for instance) - all catered for.

always remember that the web is built on http & hypermedia (media w/
links); it's the whole reason we have a web, is the web and works v well.

also worth noting that apache foundation formed by roy t fielding, same
man who wrote rest, which is the model for http, and check the name at
the top of http, roy again; he's put in tonnes of work and guidance to
the full net, and of course apache http server itself - when in doublt
just copy apache and read the rfc + dissertation.

> Why do you need to echo out a message to the user that the browser is
> redirecting anyway? A header redirect will be seamless and the user
> shouldn't even notice anything happening except for the URL changing.

because user agents MAY redirect, they don't have to - and when its a
post or such like they may want to make the choice of whether to proceed
or not; likewise from https to http and so forth.

http rfc is pretty clear that with every 3xx & 4xx status could you
should give a reason as to why and also give possible actions the user
an take next - preferably as hypermedia links to make it properly resftul.

"307 Temporary redirect, redirecting you to <xxxx> click the link if you
are not automatically redirected".

PHP General Mailing List (
To unsubscribe, visit:

Reply via email to