是否有任何'最佳實踐'關於如何在登錄到您的網站(特別是PHP)後返回用戶到他們的原始頁面?例如如果我在未登錄的情況下查看StackOverflow問題,如果我登錄,如何確保我返回到此問題?PHP:登錄後返回用戶到他們的原始頁面
從我的研究看來,圍繞$ _SERVER ['HTTP_REFERER']變量提供了很多建議。基本上,你注意到引用者並將其存儲在會話中,然後在完成後重定向到該頁面。
問題在於HTTP_REFERER充其量是不可靠的。
這是由用戶代理設置的。並非所有的用戶代理都會設置它,有些提供了將HTTP_REFERER修改爲功能的功能。總之,它不能真正被信任。
— [http://php.net/manual/en/reserved.variables.server.php]
的引薦任何編輯重定向到該網站的其他方面將通過常規的權限檢查處理。如果引用者被截斷,那麼簡單地將用戶重定向到網站的主頁面而不是他們來自的頁面可能是可以接受的。這似乎是不必要的用戶敵對,但我希望有更好的方法來處理這個問題。
所以HTTP_REFERER * *是標準的方式來做到這一點呢?我喜歡使用'lastpage'會話變量作爲空白引用者的備份的想法。謝謝! – AgentConundrum 2009-12-31 08:58:28
完全沒有問題。但要小心SESSION方法,因爲您永遠不知道用戶是否在他/她的瀏覽器中打開了您網站的多個選項卡。如果這個答案打勾,允許他人知道=) – mauris 2009-12-31 09:01:00
好點(多個標籤)。這看起來似乎最適合多種後備。如果存在隱藏的表單元素,請使用它。如果沒有,請檢查登錄頁面上的HTTP_REFERER並使用它。如果它也是空白的,可以使用會話說的最後一頁,或者將用戶返回到主頁面。這可能歸結爲兩個選項中的哪一個提供更好的用戶體驗的意見。 「主頁」可能比推到你在另一個標籤中打開一個頁面減少混亂,但它是在單頁籤的「尾頁」是可靠的情況下,更糟糕的體驗。 – AgentConundrum 2009-12-31 09:08:33