我想實現一個功能,能夠給用戶的URL /地址重定向到他試圖在登錄前能夠訪問技術記住網址
例如:
- 用戶正嘗試訪問註冊的會員專區。
- 他被告知他沒有登錄並重定向到索引頁面。
如何在成功登錄時將用戶重定向到「第1步」網址?
我希望我能夠解釋我正在嘗試做什麼。
感謝(提前)任何幫助和:-)
我想實現一個功能,能夠給用戶的URL /地址重定向到他試圖在登錄前能夠訪問技術記住網址
例如:
如何在成功登錄時將用戶重定向到「第1步」網址?
我希望我能夠解釋我正在嘗試做什麼。
感謝(提前)任何幫助和:-)
你可以通過該網址在URL:
if (!$loggedIn) {
header('Location: http://example.com/login?return='.urlencode($_SERVER['REQUEST_URI']));
exit;
}
併成功登錄後:
if ($loginSucessful) {
if (isset($_GET['return']) && substr($_GET['return'], 0, 1) == '/')) {
header('Location: http://example.com'.$_GET['return']);
} else {
header('Location: http://example.com/');
}
exit;
}
謝謝先生。 :-) – 2009-09-24 12:48:00
請注意,我對「返回」值進行了粗略驗證。 – Gumbo 2009-09-24 13:05:26
我做這樣的事情,除了我將它存儲到會話而不是在URL中 – JasonDavis 2009-09-24 16:00:43
儲存於該會議的建議(或者甚至是cookie),然後重定向到登錄頁面
在會話中存儲要好得多。它允許用戶關注鏈接(例如註冊鏈接),並在登錄後仍然被重定向到原始頁面。
我已經看到論壇將其放入網址,如www.myurl.com ?prevUrl = <prevUrl>。當然,存儲的URL必須使用encodeURI進行編碼。
在過去,我已經重定向到認證頁面與「最終目的地「頁面有重定向網址:http://example.com/login?redirect=/secured/resource。
記住URL編碼參數值。此外,當您處理重定向網址的值時,請確保它是您網站上的網址或相對網址,以避免網絡釣魚攻擊等任何安全攻擊。否則,第三方可以定位您網站的登錄頁面,然後重定向回其網站並可能訪問用戶的安全會話。
我不使用會話來存儲URL的原因是,搜索引擎蜘蛛可能最終創建會話,因爲他們點擊您網站上受保護並需要登錄的鏈接。由於他們必須憑據,會話創建僅在30分鐘後超時。
代表圖表顯示在這個問題上沒有downvote鑄造。你是否想要憐憫upvotes? – random 2009-09-24 12:31:27
我會推薦標題更改爲「技術用於記住用戶通過HTTP請求打算的URL」或者提供一些更詳細的問題。 – 2009-09-24 12:43:32
根本不是e.c.ho先生,但是當我第一次發佈這個問題時,它被直接投票了。我現在刪除了該評論。 – 2009-09-24 12:53:15