I have this code on one of my sites... it sits inthe config file, so every
page is able to establish their URL.

For my site, the definition of URL is just the stuff after
http://www.domain.com/.


$script = $_SERVER['PHP_SELF'];
$script = eregi_replace('^/', '', $script);
$qs = $_SERVER['QUERY_STRING'];
$this_ref = base64_encode($script."?".$qs);


The result?  $this_ref will look like dir/dir/file.php?getvar=foo if the
current URL is http://www.mysite.com/dir/dir/file.php?getvar=foo


The if I need to pass the referrer onto another script (in my case a login
procedure), I just do this:

<A HREF="login.php?return_ref=<?=$this_ref?>">login here</a>


login.php passes $_GET['return_ref'] around in the URL through the login
form, the validation, the error messages, the password reminder script, and
all sorts of other stuff, and once the user is finally logged in, I can do
this:

$return_ref = base64_decode($_GET['return_ref']);

and supply them with:

<A HREF="<?=$return_ref?>">Click here to continue</a>

... or better still, once they're logged in, I just:

header("Location: {$return_ref}");


If you wanted to do it for a full domain URL, then store your full domain as
a var $base_url, and prepend it to $this_ref

$base_url = "http://www.mydomain.com";; // without trailing slash
$script = $_SERVER['PHP_SELF'];
$qs = $_SERVER['QUERY_STRING'];
$this_ref = base64_encode($base_url.$script."?".$qs);



The only thing this doesn't cover is pages with POST variables, but I
wouldn't want it to.


Justin French



on 09/08/02 1:40 AM, Henry ([EMAIL PROTECTED]) wrote:

> I have an idea then.
> 
> How can I best generate a full URL from PHP_SELF and other variables on the
> referrer page such that I can generate the back link on the page I get to
> even if the referrer page is on a different server?
> 
> as an eample if I know that the page to go back to will be at
> http://www.myprimary.com/referrer.php and I generate a page at
> http://www.mysecondary.com/info.php I can ensure that there is the following
> html in place
> 
> <a href="http://www.myprimary.com/referrer.php";>go back</a>
> 
> TIA
> 
> Henry
> 
> "Stas Maximov" <[EMAIL PROTECTED]> wrote in message
> news:008601c23eef$cc25f260$ec000064@nexus...
>> Yes, indeed. Thanks, Justin, I forget to mention this one. It works really
>> well on forums and comments, i.e. the cases when you do POSTs. The good
>> thing here is that you passing the whole URL (taking it from PHP_SELF), so
>> you save on the decision logic in the end.
>> 
>> Regards, Stas
>> 
>> ----- Original Message -----
>> From: "Justin French" <[EMAIL PROTECTED]>
>> To: "Stas Maximov" <[EMAIL PROTECTED]>; "Henry" <[EMAIL PROTECTED]>
>> Cc: "PHP General" <[EMAIL PROTECTED]>
>> Sent: Thursday, August 08, 2002 4:03 PM
>> Subject: Re: [PHP] Most portable back button in php
>> 
>> 
>>> Just to add in some more ideas, you can always pass the referring script
>> to
>>> the second script manually...
>>> 
>>> I do this when someone has to login, then return back to the original
> page
>>> they were on...  I just get the URL + query string, base64_encode() it,
>> then
>>> pass it around in the URL or POST until i need it, then base64_decode()
> it
>>> and header("Location: ...") the user to the right page.
>>> 
>>> Works really well, depending on your situation.
>>> 
>>> 
>>> Justin
>>> 
>>> 
>>> --
>>> PHP General Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>> 
>>> 
>> 
> 
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to