Thanks you Nathan.
That worked.

"Nathan Rixham" <> wrote in message
Ashley Sheridan wrote:
On Wed, 2010-03-31 at 11:32 -0500, King Coffee wrote:


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?

echo '<h1>Redirecting... Please Wait</h1>';
if (!headers_sent()) {
header('Location: ' . '');
} else {
die('Could not redirect.');


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