為什麼我登入後重定向到index.php而不是上一頁?

Barbara Streisand
發布: 2024-11-02 01:31:31
原創
734 人瀏覽過

Why Am I Redirected to index.php After Logging In Instead of My Previous Page?

登入後重新導向到上一頁

登入網站時,通常可以方便地重新導向回用戶正在查看的頁面在​​他們登入之前。這個問題探討了一個程式碼問題,即使用者被重定向到index.php而不是預期的頁面。

在提供的範例程式碼中,login-check.php腳本決定登入狀態並傳送將參數 (p) 重新導向至 login.php 頁面。但是,它不會將用戶發送到所需的頁面,而是將他們重定向到index.php。

為了解決此問題,建議使用以下解決方案:

  1. 將使用者的當前頁面作為查詢字串傳遞

    • 修改登入表單以包含儲存使用者目前頁面的隱藏輸入欄位。這可以透過在 login.php 腳本中傳遞 $_SERVER['REQUEST_URI'] 來完成。
    • 例如,如果使用者正在閱讀一篇文章(comment.php?articleid=17) 並嘗試離開評論,URL 將修改為:
      login.php?location=comment.php?articleid=17
  2. 處理「位置」查詢字串在login-check.php:

    • 在login-check.php腳本中,檢查$_POST['location']是否已填入。如果是,請將其儲存在 $redirect 變數中。
  3. 根據登入狀態和位置進行重新導向:

    • 如果登入成功,請檢查$redirect 中是否有可用的重定向URL。如果是這樣,請將使用者重新導向到該頁面。否則,將它們重定向到index.php。
    • 如果登入失敗或使用者已登錄,請處理適當的錯誤訊息或根據需要重新導向。
  4. 驗證重定向URL:
    在重定向用戶之前驗證$_GET['location'] 值非常重要,以確保他們不會嘗試訪問惡意URL。
  5. 編碼查詢字串
    將 URL 作為 $_GET 參數傳遞時使用 urlencode 來正確編碼特殊字元。

透過實施這些更改,使用者將成功重定向到他們先前查看的頁面登入後,確保無縫的使用者體驗。

以上是為什麼我登入後重定向到index.php而不是上一頁?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!