我正在使用此代码:
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'输入为空。
我做错了什么?
答案 0 :(得分: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 */){
}
顺便说一句,如果你不这样做,那么整个提交表格将会再次提交,就像你重新提交一样。
例如,如果您将数据插入数据库,则在刷新页面时会反复插入数据,因此如果您按照建议重定向,则会丢失已发布的数据,现在您可以显示错误或成功。
答案 1 :(得分:0)