2011-09-26 57 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。看看这些问题的答案,以了解你可以做什么。