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