PHP表单错误问题


PHP form error issue

可能有一个简单的解决方案,但我不是很精通php!基本上我想提交一个表单和用户返回一个谢谢你覆盖图像没有刷新。我已经设法让这个工作,但现在的形式验证不能正常工作…

我需要让我的覆盖只出现在表单验证成功后,如果它不成功,我需要显示错误而不是感谢覆盖…

我知道我可以使用ajax的这个形式,但我不想依赖于javascript!

在验证工作的那一刻,但是图像被覆盖在它的顶部…

这是php代码:

<?php
if($_POST['formSubmit'] == "Submit")
{
    $errorMessage = "";
  if(empty($_POST['formName']))
  {
    $errorMessage .= "<li>You forgot to enter your name</li>";
  }
  if(empty($_POST['formTown']))
  {
    $errorMessage .= "<li>You forgot to enter your town</li>";
  }
    $varName = $_POST['formName'];
    $varTown = $_POST['formTown'];
    $varAge = $_POST['formAge'];
    $varEmail = $_POST['formEmail'];
    $varOne = $_POST['hidden-one'];
    $varTwo = $_POST['hidden-two'];
    $varThree = $_POST['hidden-three'];
    $varFour = $_POST['hidden-four'];
    $varFive = $_POST['hidden-five'];
    if(empty($errorMessage)) 
    {
        $fs = fopen("mydata.csv","a");
        fwrite($fs,"'n" . $varName . ", " . $varTown . ", " . $varAge . ", " . $varEmail . ", " . $varOne . $varTwo . $varThree . $varFour . $varFive);
        fclose($fs);
    }
}
?>

这是我的html(与php代码):

<?php 
if (isset($_POST['formSubmit'])) { 
    print "<div class='"thank-you'"><a href='enter.php'><img src='images/thankyou-overlay.png'/></a></div>'n"; 
} 
?>
<div id="mainContainer">
<p>Just complete your entry details below.</p>
<?php
if(!empty($errorMessage)) {
    echo("<p>There was an error with your form:</p>'n");
    echo("<ul>" . $errorMessage . "</ul>'n");
} 
?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" target="_self">
    <div class="inputContainer">
    <label class="text" name="name">Full Name:</label>
    <input type="text" class="box" name="formName" value="<?=$varName;?>">
    </div>
        ... more html inputs...
</form>

无论您要做什么,都必须使用Javascript。你可以选择AJAX,或者使用iframe来直接发布,或者在javascript中读取它来检查发布状态。

编辑:

你可以这样发布:

<form action="do_stuff.aspx" method="post" target="my_iframe">
  <input type="submit" value="Do Stuff!" />
</form>
<!-- when the form is submitted, the server response will appear in this iframe -->
<iframe name="my_iframe" src="not_submitted_yet.aspx"></iframe>

所以在发布之后,你必须从这个iframe读取状态,(换句话说,从它读取HTML输出)

首先,我很难理解你在做什么,但我仍然可以指出一些事情有更好的选择;你应该把这个代码

if($_POST['formSubmit'] == "Submit"){…

}
在表单上方的

中添加所需的功能而且上面的if应该有一个else来显示出现错误时的形式。就像其他的{——形式}

如果有帮助,试试这个和c