2011-09-26 60 views
0

表單數據,我用這個代碼:復位上卸載

if(isset($_POST['btitle'])) { 
    if(count($errors) > 0) { 
     foreach($errors as $error) 
      $errContent .= "<li>".$error; 
     echo notification(
      $errContent, 
      FALSE, 
      "The following errors were encountered:" 
     ) . "<div style='margin-bottom: 10px;'></div>"; 
    } 
    else { 
     echo notification(
      "<li>New form added!", 
      TRUE, 
      "Success:" 
     ) . "<div style='margin-bottom: 10px;'></div>"; 
    } 
} 

當我輸入一個名爲「BTITLE」輸入的東西,點擊提交按鈕,一切都很好,直到我刷新頁面 - 它應該丟失數據並在刷新後重新開始,但它會一直說「成功」,即使「btitle」輸入爲爲空

我在做什麼錯?

回答

1

您需要將用戶重定向到相同的頁面並且丟失發佈數據。

header("Location: file.php?success=true");//or ?errors[]=blabla 
exit(); 

現在,在同一頁(file.php),你需要:

if(isset($_GET['success']) && $_GET['success'] == true){ 
    //handle true 
}else if(/* here you can ask about errors or what ever */){ 

} 

順便說一句,如果你不這樣做,整個提交表單會再次行動像你重新提交它。例如,如果您將數據插入到數據庫中,那麼當您刷新頁面時,它會一遍又一遍地重複插入,因此如果按照建議重新定向,則會丟失發佈的數據,現在可以顯示錯誤或成功。

0

當您點擊刷新時,您的瀏覽器將POST數據重新發送到頁面。這個問題已被多次詢問,例如herehere。看看這些問題的答案,以瞭解你可以做什麼。