我不確定哪個是最好的方式來做到這一點,所以我很樂意聽到一些想法。登錄後重定向到舊鏈接
好吧,讓我們說我們有這個鏈接/ URL =>www.myscript.com/clients.php?id=5
如果我嘗試打開它,我重定向到www.myscript.com/login.php
,因爲我沒有登錄,然後當我登錄我如果我願意,請勿重定向到原始鏈接/網址www.myscript.com/clients.php?id=5
。
那麼,我應該添加到login.php來實現這種表演/工作?
我不確定哪個是最好的方式來做到這一點,所以我很樂意聽到一些想法。登錄後重定向到舊鏈接
好吧,讓我們說我們有這個鏈接/ URL =>www.myscript.com/clients.php?id=5
如果我嘗試打開它,我重定向到www.myscript.com/login.php
,因爲我沒有登錄,然後當我登錄我如果我願意,請勿重定向到原始鏈接/網址www.myscript.com/clients.php?id=5
。
那麼,我應該添加到login.php來實現這種表演/工作?
我會改變的代碼,將您重定向到登錄頁面,如果你沒有登錄位
而不是重定向到login.php中,做到這一點:
$myUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
header("location:login.php?from=".$myUrl);
exit;
在登錄頁面,將$_GET['from']
添加到隱藏的表單元素或其他東西。
一旦登錄驗證,重定向(記得先urldecode()
!)。
在client.php中,在重定向到login.php之前,在會話變量中設置當前頁面/ url。成功登錄後,檢查會話值是否存在於特定密鑰(我們從client.php中設置),如果是,則檢索該值並重定向到該頁面。 。
您可以使用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。