Using 'header' as redirect
| From: | Philip Thompson | Date: | Tue, 30 May 2006 16:08:54 +0000 |
| Subject: | Using 'header' as redirect | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-237091@lists.php.net to get a copy of this message | ||
Hi all.
I have a site where I include pages within pages. Well, for some of the pages I want the user to be logged in, while others I don't care. I'm doing something that I thought was not allowed by the header() function.
<!-- index.php -->
<html>
<head>...</head>
<body>
<?
if ($subPage = $_GET['page'])
include ("$subPage");
?>
</body>
</html>
<!-- some subpage that requires a login: subpage.php -->
<?
if (!$_SESSION["loggedIn"]) {
header ("location: login.php");
exit;
} else {
...
}
?>
As you can see, by the time that index.php includes the subpage, it has already outputted HTML. According to using the header() function, you are not allowed to output any HTML *before* using header(). However, I am doing this and it is redirecting fine.
I have hypothesized why it is still redirecting appropriately... *subpage.php* has not outputted HTML before it does the check, only index.php, so it does not fail. Is this correct? Any help is appreciated. It appears to work fine, but I don't want to be surprised in the future by my application breaking suddenly!! =D
Thanks,
~Philip