2009-10-24 65 views
2

我是一個試圖開發一些登錄面板的新手。現在的問題是,重新提交表單數據的問題

我不能停止重新提交瀏覽器的按下和向前按鈕上的表單數據。 試圖找到它在谷歌,但沒有有效的解決方案出現。

請賜教。

回答

3

您可能想要實施Post-Redirect-Get方法。

因爲您發佈了一條信息而您沒有重定向,所以POST數據可能因瀏覽器行爲而再次發送。您需要在POST後重定向以停止此操作。

下圖顯示了PRG的流程:

alt text http://upload.wikimedia.org/wikipedia/en/3/3c/PostRedirectGet_DoubleSubmitSolution.png

要做到這一點,在你的頁面發佈,而不是顯示的結果,你將用戶重定向到另一個結果頁。

例如

function redirect($url){ 
    header('Location: '.$url); 
    exit; 
} 

if(isset($_POST['submit'])){ 
    $ok = checkLogin($username,$password); 
    if($ok){ 
    redirect('thank-you.php'); 
    }else{ 
    redirect('login.php?error'); 
    } 
} 
+0

可以請您詳細說明一下.....我說我是新的bie ...這對我更有幫助 – 2009-10-24 04:20:41

+0

除了SO的絕對幫助外,但維基百科上的圖像清晰並且我們定義。 – mauris 2009-10-24 06:30:06