Re: Redirec.t
| From: | Leif K-Brooks | Date: | Sat, 29 Mar 2003 02:02:54 +0000 |
| Subject: | Re: Redirec.t | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-141535@lists.php.net to get a copy of this message | ||
Yes, I agree it's a workaround, but sometimes it's required for code readibility (and sanity! :) For example, what if I have multiple pages in one file, with a switch-case, and some need to redirect, but there's a page header and footer? For example:
<?php
include('includefile.php');
outputheader();
switch($_GET['page']){
case 'foo':
//Output something here
break;
case 'bar':
//Redirect here
break
}
outputfooter();
?>
The only way would be to do the footer and header on only pages that need them, which can be lived with for a few pages, but imagine a few hundred, or thousand! Sometimes, a quick hack is good IMO.
John W. Holmes wrote:
Ahhh... but the million dollar question is if you understand WHY it worked... Do you understand that this is a workaround and if you coded correctly you wouldn't need it? Output buffering to enable a header() redirect later in your code is almost never needed if you code correctly. Think about it: if you're going to redirect to a new page, why would you have output!? ---John W. Holmes... PHP Architect - A monthly magazine for PHP Professionals. Get your copy today. http://www.phparch.com/-- The above message is encrypted with double rot13 encoding. Any unauthorized attempt to decrypt it will be prosecuted to the full extent of the law.-----Original Message----- From: Johnny Martinez [mailto:jmartinez@tmi-la.com] Sent: Friday, March 28, 2003 8:37 PM To: 'Leif K-Brooks'; Johnny Martinez Cc: 'php-general@lists.php.net' Subject: RE: [PHP] Redirec.t Thanks! That worked! Johnny -----Original Message----- From: Leif K-Brooks [mailto:eurleif@buyer-brokerage.com] Sent: Friday, March 28, 2003 4:53 PM To: Johnny Martinez Cc: 'php-general@lists.php.net' Subject: Re: [PHP] Redirec.t Try putting: ob_start(); at the top of your file (before ANY output is done). Johnny Martinez wrote: Forgive me. I'm new to php. I put the function in my function.php include file which is loadedbeforeI display anything. I want to redirect the browser to a new url once the php script is finished. Johnny -----Original Message----- From: Evan Nemerson [ mailto:evan@coeus-group.com <mailto:evan@coeus-group.com> ] Sent: Friday, March 28, 2003 3:56 PM To: Johnny Martinez Subject: Re: [PHP] Redirec.t No. You have to send header information before you output anythingeven-before the <html>. On your document, you have to put it before what is currently line 12. On Friday 28 March 2003 03:39 pm, you wrote: Tried that...here is the error: Warning: Cannot modify header information - headers already sent by (output started at D:\bmc\uploads\request_mdb\header.php:12) in D:\bmc\uploads\request_mdb\functions.php on line 16 Any ideas? Does this only work in the <head></head>? Johnny -----Original Message----- From: Evan Nemerson [ mailto:evan@coeus-group.com <mailto:evan@coeus-group.com> ] Sent: Friday, March 28, 2003 3:34 PM To: Johnny Martinez; php-general@lists.php.net <mailto:php-general@lists.php.net> Subject: Re: [PHP] Redirec.t header("Location: http://www.domain.com/admin.php <http://www.domain.com/admin.php> "); if you _really_ need to use your syntax, you could function redirect($uri) { header("Location: ".$uri); } On Friday 28 March 2003 03:28 pm, Johnny Martinez wrote: Hi all, Can someone tell me the function to redirect a browser to a specific page? Johnny For example: <? code... code... code finished. redirect( "http://www.domain.com/admin.php" <http://www.domain.com/admin.php> ); ?> -- The above message is encrypted with double rot13 encoding. Any unauthorized attempt to decrypt it will be prosecuted to the full extent of thelaw.