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: ' . 'http://auction.househops.com/index.php');
>> } 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
<?php
// add in logic if you want
header('Location: ' . 'http://auction.househops.com/index.php');
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 (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php