2011-12-30 169 views
0

我不確定哪個是最好的方式來做到這一點,所以我很樂意聽到一些想法。登錄後重定向到舊鏈接

好吧,讓我們說我們有這個鏈接/ URL =>www.myscript.com/clients.php?id=5

如果我嘗試打開它,我重定向到www.myscript.com/login.php,因爲我沒有登錄,然後當我登錄我如果我願意,請勿重定向到原始鏈接/網址www.myscript.com/clients.php?id=5

那麼,我應該添加到login.php來實現這種表演/工作?

回答

4

我會改變的代碼,將您重定向到登錄頁面,如果你沒有登錄位

而不是重定向到login.php中,做到這一點:

$myUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); 
header("location:login.php?from=".$myUrl); 
exit; 

在登錄頁面,將$_GET['from']添加到隱藏的表單元素或其他東西。

一旦登錄驗證,重定向(記得先urldecode()!)。

3

在client.php中,在重定向到login.php之前,在會話變量中設置當前頁面/ url。成功登錄後,檢查會話值是否存在於特定密鑰(我們從client.php中設置),如果是,則檢索該值並重定向到該頁面。 。

0

您可以使用cookie或使用GET。

示例使用GET:

在clients.php:

if (!loggedIn()) { 
header("Location: www.website/login.php?redirect=".$_SERVER['REQUEST_URI']); 
} 

然後login.php中可以回到原來的頁面被重定向到$ _GET [ '重定向']重定向。

您還可以使用cookie。在clients.php中,將url存儲在cookie中,然後login.php可以讀取cookie並重定向回原始URL。