PHP邮件表单在出现错误时未验证

PHP邮件表单在出现错误时未验证,php,validation,Php,Validation,最近,我在我的网站上添加了一个PHP邮件表单,用户可以在这里发送电子邮件,我也可以接收它们。然而,由于一个奇怪的原因,错误消息没有显示在用户屏幕上 例如,如果用户将字段留空并单击submit,则会发送电子邮件,而不会向他们提供错误信息,说明该字段是必需的 以下是验证程序的PHP代码: <?php define("EMAIL", "ITSPRIVATE@outlook.com"); if(isset($_POST['submit'])) { include('validate.cla

最近,我在我的网站上添加了一个PHP邮件表单,用户可以在这里发送电子邮件,我也可以接收它们。然而,由于一个奇怪的原因,错误消息没有显示在用户屏幕上

例如,如果用户将字段留空并单击submit,则会发送电子邮件,而不会向他们提供错误信息,说明该字段是必需的

以下是验证程序的PHP代码:

<?php
define("EMAIL", "ITSPRIVATE@outlook.com");

if(isset($_POST['submit'])) {

  include('validate.class.php');

  //assign post data to variables
  $name = trim($_POST['name']);
    $email = trim($_POST['email']);
    $message = trim($_POST['message']);

  //start validating our form
  $v = new validate();
  $v->validateStr($name, "name", 3, 75);
  $v->validateEmail($email, "email");
  $v->validateStr($message, "message", 5, 1000); 

  if(!$v->hasErrors()) {
        $header = "From: $email\n" . "Reply-To: $email\n";
        $subject = "Contact Form Subject";
        $email_to = EMAIL;

        $emailMessage = "Name: " . $name . "\n";   
        $emailMessage .= "Email: " . $email . "\n\n";
        $emailMessage .= $message;

    //use php's mail function to send the email
        @mail($email_to, $subject ,$emailMessage ,$header ); 

    //grab the current url, append ?sent=yes to it and then redirect to that url
        $url = "http". ((!empty($_SERVER['HTTPS'])) ? "s" : "") . "://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
        header('Location: '.$url."?sent=yes");

    } else {
    //set the number of errors message
    $message_text = $v->errorNumMessage();      

    //store the errors list in a variable
    $errors = $v->displayErrors();

    //get the individual error messages
    $nameErr = $v->getError("name");
    $emailErr = $v->getError("email");
    $messageErr = $v->getError("message");
  }//end error check
}// end isset
?>

<?php



<div id="mainbox">
<div id="contact_form_wrap">
    <span class="message"><?php echo $message_text; ?></span>
    <?php echo $errors; ?>
    <?php if(isset($_GET['sent'])): ?><h2>Your message has been sent</h2><?php endif; ?>
    <form id="contact_form" method="post" action=".">
      <p><label>Name:<br />
      <input type="text" name="name" class="textfield" value="<?php echo htmlentities($name); ?>" />
      </label><br /><span class="errors"><?php echo $nameErr; ?></span></p>

      <p><label>Email: <br />
      <input type="text" name="email" class="textfield" value="<?php echo htmlentities($email); ?>" />
      </label><br /><span class="errors"><?php echo $emailErr ?></span></p>         

      <p><label>Message: <br />
      <textarea name="message" class="textarea" cols="45" rows="5"><?php echo htmlentities($message); ?></textarea>
      </label><br /><span class="errors"><?php echo $messageErr ?></span></p>

      <p><input type="submit" name="submit" class="button" value="Submit" /></p>
    </form>
  </div>
</div>

验证位按预期工作;正是表单的
操作
导致它无法启动

取出
action=“.”

所以


将在同一页上显示表单进程

您可以在此处看到预期的验证工作

也如本文所述

<?php



<div id="mainbox">

它不起作用
没有帮助。什么不起作用?您收到错误消息了吗?它的目的是向您提供错误消息。当您填写缺少内容的表单时。我没有填写任何内容就点击了提交,它没有给出任何错误消息任何人都得到了解决方案????
我删除了
<form id="contact_form" method="post">
<?php



<div id="mainbox">