登入後重新導向到上一頁
當使用者登入網站時,通常希望將他們重新導向回他們所造訪的頁面之前都在瀏覽。這確保了無縫的用戶體驗,並消除了他們手動返回的需求。
實現此功能的一種方法是在將使用者重新導向到登入頁面時透過GET 變數傳遞使用者的目前位置:
<code class="php">header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));</code>
這會將使用者傳送到登入頁面,其中包含一個隱藏的輸入字段,其中包含上一頁的URL:
<code class="php">echo '<input type="hidden" name="location" value="'; if(isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />';</code>
在處理以下內容的login-check.php 腳本中登入請求,如果登入成功並且設定了location參數,使用者會被重新導向到儲存的網址:
<code class="php">if(isset($_POST['location'])) { $redirect = $_POST['location']; } // ... if(isset($_SESSION['id_login'])) { // if login is successful and there is a redirect address, send the user directly there if($redirect) { header("Location:". $redirect); } }</code>
但是,對$_GET['location']參數進行驗證至關重要防止使用者被重新導向到惡意網站。此外,在將 URL 作為 GET 參數傳遞時,請務必使用 urlencode,以正確處理特殊 URL 字元。
以上是如何在登入後將使用者重新導向回上一頁?的詳細內容。更多資訊請關注PHP中文網其他相關文章!