【问题标题】:Contact form - Checking if the user had completed all the fields联系表 - 检查用户是否填写了所有字段
【发布时间】:2012-06-12 13:35:12
【问题描述】:

我的网站上有此联系表,但我无法检查表单字段是否填写完毕。

<form id="cform" name="cform" method="post" action="<?php bloginfo('template_directory'); ?>/cform.php">
  <div id="nande">
    <p><input type="text" id="name" name ="name"; onfocus="if(this.value=='Your Name is')this.value='';" onblur="if(this.value=='')this.value='Your Name is';" alt="Your Name" value="Your Name is"/></p>
    <p> <input type="text" id="e-mail" name="mail" onfocus="if(this.value=='Your Email is')this.value='';" onblur="if(this.value=='')this.value='Your Email is';" alt="Your Email" value="Your Email is"/></p>
  </div>
  <div class="clear"></div>
  <p><textarea name="message" rows="4" id="comments" tabindex="4" title="comments" onfocus="if(this.value=='Your Message is')this.value='';" onblur="if(this.value=='')this.value='Your Message is';"">Your Message is</textarea></p>
  <div class="clear"></div>
  <p><input name="submit" type="submit" value="SEND" id="submit"/></p>
</form> 

下面是表单的 PHP

<?php
if(isset($_POST['submit'])) {
   $to = 'email@address.com' ;     //put your email address on which you want to receive the information
   $subject = 'designdone project email';   //set the subject of email.
   $headers  = 'MIME-Version: 1.0' . "\r\n";
   $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
   $message = "<table><tr><td>Your Name</td><td>".$_POST['name']."</td></tr>
               <tr><td>E-Mail</td><td>".$_POST['email']."</td></tr>
               <tr><td>Message</td><td>".$_POST['message']."</td>
               </tr></table>" ;
mail($to, $subject, $message, $headers);
header( 'Location: http://designdone.com' ) ;
}
?>

如何检查用户是否填写了表单并且没有发送空表单?

感谢您的帮助。

【问题讨论】:

标签: php forms field contact


【解决方案1】:

尝试在$_POST 字段上使用isset()empty()

例如:

foreach ( $_POST as $attr => $val ) {
  if ( !isset( $_POST[ $attr ] ) || empty( $_POST[ $attr ] ) ) {
    die( 'Please fill out all fields.' );
  }
}

【讨论】:

  • 感谢您的快速答复。我在带有“die”代码的行上收到此错误“Parse error: syntax error, unexpected T_EXIT”。
  • 你可以写 echo 而不是 die 并使用 exit();
  • 我用这个表格解决了这个问题 freecontactform.com/email_form.php 这和你建议的概念是一样的。所以谢谢。
【解决方案2】:

在 javascript 中,您可以使用 .isEmpty 来确定该字段是否为空。

【讨论】:

  • 很遗憾,我不是 js 专家。你能告诉我如何将它合并到我的代码中。我很感激你的时间。谢谢。
  • 纯 JavaScript 不是我的强项(我个人更喜欢 jQuery)。但是w3schools.com/js/js_form_validation.asp 应该足以让您了解基础知识并让您知道该怎么做(虽然那里没有使用 isEmpty,但还有其他方法可以验证字段)。
【解决方案3】:

我建议使用验证库。有很多可用的,而且大多数都非常灵活。

【讨论】:

    猜你喜欢
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 2013-12-29
    • 2022-11-30
    • 2012-08-18
    相关资源
    最近更新 更多