--- Jonathan Duncan [EMAIL PROTECTED] wrote:
This is code that I have in my index that check whether or not SSL
is being used when accessing certain pages and if not then it
redirects to the same address but with SSL.
if ($pagename==login || $pagename==signup || $pagename==checkout) {
if (!$HTTPS) {
//header(Location:
https://.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].?pagename=$pagename);
exit;
}
}
This used to work before I upgraded my PHP. Now when I click on a link
that matches my SSL checker it just hangs:
http://www.routerbitworld.com/index.php?pagename=checkout
If I change the header to redirect to a location without any variable
directive like this
http://www.routerbitworld.com/index.php
...works fine. Why can't I send a variable this way?
You need to step back and do some debugging. I assume you just made a mistake
in your email, but you mentioned this not working:
http://www.routerbitworld.com/index.php?pagename=checkout
Now, if this is what your Location header is assigned to, you will send the
browser on an endless journey to find the resource it wants:
1. if ($pagename==login || $pagename==signup || $pagename==checkout)
OK, yes it does (assuming register_globals is on). Let's go to the next step:
2. if (!$HTTPS)
Assuming this works as you expect, this conditional is still true, because you
used http in your URL. So, we continue:
3. Redirect to http://www.routerbitworld.com/index.php?pagename=checkout
Rinse. Repeat.
That would definitely be a problem.
Before I make any other guesses, try this (I always suggest this same thing):
For eac:
header('Location: http://example.org/');
Change this to:
echo 'Location: http://example.org';
Meaning, echo where you're trying to redirect rather than sending the header.
This way you can follow what's going on on the screen.
Hope that helps.
Chris
=
Become a better Web developer with the HTTP Developer's Handbook
http://httphandbook.org/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php