簡體   English   中英

php中的表單重新提交,如何重定向到特定頁面

[英]form resubmission in php, how to redirect to specific pages

我在php中重新提交表單時遇到小問題,每當將表單填寫到我的網站上並提交后,它們就會被重定向回去。

<?php
if (isset($_POST['submit'])){
        //process form input and validate data here 
        if ( strlen(isset($_POST['name'])) > 0 ){
            //return status to user here
            //and redirect page here.
?>
        <script type='text/javascript'>
           history.go(-2);
        </script>
<?php
        }
    }
?>

這是我遇到問題的地方,我正在使用JavaScript重定向到上一頁。 我需要瀏覽器重定向到上一頁,但是如果它是login.php,那么它應該在login.php之前重定向到上一頁,我該如何在php中做到這一點,以獲取上一頁並將瀏覽器重定向到上一頁,但是如果上一頁是login.php,則應將其重定向到前一頁。

這不是確切的解決方案,但是要重定向用戶,請使用以下命令:

header('Location: http://www.google.com/');

要使用上面的代碼,必須先顯示該代碼,然后才能在該頁面上顯示其他任何信息。

要將用戶重定向到他們來自的頁面,請使用以下命令:

header('Location: '+$_SERVER['HTTP_REFERER']);

使用$_SERVER['HTTP_REFERER']時要小心,因為該URL是由用戶代理設置的,並不總是存在的。

如果確實需要重定向到頁面,然后再將其重定向到登錄頁面,則需要將該信息存儲到$ _SESSION []變量中,或者將其設置為url中的GET var。

例:

  1. 使用者前往http://www.example.com/settings.php
  2. 用戶未登錄,將他們重定向到login.php?redirect=http://www.example.com/settings.php或在重定向之前$_SESSION['redirect'] = "http://www.example.com/settings.php";
  3. 處理登錄
    • 登錄失敗將他們重定向到login.php?redirect=http://www.example.com/settings.php或login.php(如果使用了SESSION變量)。
    • 使用header('Location: '+$_GET['redirect']);登錄成功的重定向header('Location: '+$_GET['redirect']); header('Location: '+$_SESSION['redirect']);

有關會話的更多信息

有關$ _SERVER變量的更多信息

有關header()的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM