Re: returning to the same page after log in
| From: | Sjef | Date: | Wed, 09 Aug 2006 14:51:04 +0000 |
| Subject: | Re: returning to the same page after log in | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-240375@lists.php.net to get a copy of this message | ||
I think I solved the problem.
I've set the action of the login form to $_SERVER['REQUEST_URI'] instead of
$_SERVER['PHP_SELF']. It works fine.
May not be the proper way but hey ...
Sjef
"Andrei" <phplist@textbill.com> schreef in bericht
news:44D9F10D.80407@textbill.com...
>
> When u know the user is not logged in and you have to redirect him to
> login page, get all variables that are in $_GET and in $_POST (if u have
> data that u send in post also) and form a string with them as a return
> context string like:
>
> The code that you have to put in the page where you redirect the user to
> login page and where user will land back after login.
>
> $return_context = $PHP_SELF."?";
> foreach( $_GET as $key => $val )
> $return_context .= "&".$key."=".$val;
> foreach( $_POST as $key => $val )
> $return_context .= "&".$key."=".$val;
>
> header( "Location: login.php?back_page=".urlencode( utf8_encode(
> $return_context ) ) );
>
> In login page, after you created the session or whatever you do at login
> pagrt you do:
>
> if( empty( $back_page ) )
> $back_page = $_GET["back_page"];
>
> if( !empty( $back_page ) )
> header( "Location: ".utf8_decode( urldecode( $back_page ) ) );
> else
> header( "Location: somewhere_else.php" );
> exit;
>
> The code is not checked. It's only to have an ideea...
>
> Andy
>
> Sjef wrote:
>> Hello all!
>> This is a bit difficult to explain.
>> On a site I am building I sometimes use the GET method to forward values
>> to
>> the next page. There are certain pages that you need to be logged in to
>> to
>> be able to see data. So you arrive at the page, you realize that you are
>> not
>> logged in, so you type your username/password and hit 'log in'. Then the
>> page gets severely messed up as the GET data are not forwarded (at least,
>> I
>> think that's the problem). Any ideas how to solve this?
>> I tried to send a header("location: ...") with the document_root and
>> request_uri as the location, but that doesn't do the trick.
>>