【问题标题】:Validating email form验证电子邮件表单
【发布时间】:2016-06-23 11:18:13
【问题描述】:

在我的表单中强制填写姓名和电子邮件字段的最佳解决方案是什么?

似乎无法为我的表单找到直接解决方案,也没有专家。

我目前收到大量空白电子邮件。

HTML 代码

<form name="enq" method="post" action="mail/myphpfile.php" onSubmit="return validation();">
  <fieldset>
    <input type="text" name="name" id="name" value=""  class="input-block-level" placeholder="Name" />
    <input type="text" name="email" id="email" value="" class="input-block-level" placeholder="Email" />
    <textarea rows="11" name="message" id="message" class="input-block-level" placeholder="Comments"></textarea>
    <div class="actions">
      <input type="submit" value="Send Your Message" name="submit" id="submitButton" class="btn btn-info pull-right" title="Click here to submit your message!" />
    </div>
  </fieldset>
</form>

PHP 代码

<?php
if(isset($_POST['submit']))
{
    $name = $_POST['name'];
    $email = $_POST['email'];
    $query = $_POST['message'];
    $email_from = $name.'<'.$email.'>';

    $to="name@myemailaddress.co.za";
    $subject="Enquiry from my website";
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= "From: ".$email_from."\r\n" . "BCC:email@email1.co.za,      email@email2.co.za, email@email3.co.za\r\n";
    $message="    
     Name: $name       
     <br>
     Email-Id:$email       
     <br>
     Message:$query";

    if(mail($to,$subject,$message,$headers))
            header("Location:../thank-you.html");
    else
        header("Location:../error.html");
        //contact:-email@myemail.co.za
}
?>

【问题讨论】:

标签: php email-validation


【解决方案1】:

试试

  <?php
 if(isset($_POST['submit']) && !empty($_POST['email']) && !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false)
{
$name = $_POST['name'];
$email = $_POST['email'];
$query = $_POST['message'];
$email_from = $name.'<'.$email.'>';

$to="name@myemailaddress.co.za";
$subject="Enquiry from my website";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$email_from."\r\n" . "BCC:email@email1.co.za,      email@email2.co.za, email@email3.co.za\r\n";
$message="Name: $name <br>
 Email-Id:$emai<br>
 Message:$query ";

if(mail($to,$subject,$message,$headers))
 header("Location:../thank-you.html");
 else
  header("Location:../error.html");
 //contact:-email@myemail.co.za
 }

【讨论】:

  • 试过了,它只是指向一个空白页面,点击提交后php表单所在的地方。
【解决方案2】:

像这样使用 html5 所需的验证

<input type="text" name="name" id="name" value=""  class="input-block-level" placeholder="Name" required/>

<input type="email" name="name" id="name" value=""  class="input-block-level" placeholder="Name" required/>

【讨论】:

  • 试过了,它仍然允许我发送空白表格。
【解决方案3】:

在 HTML5 中应该可以正常工作!

<input type="text" name="name" id="name" value=""  class="input-block-level" placeholder="Name" required/>

<input type="email" name="emailField" id="name" value=""  class="input-block-level" placeholder="Email" required/>

【讨论】:

  • 试过了,它仍然允许我发送空白表格。
【解决方案4】:
try this!!

if(isset($_POST['submit']))
{
    $email = test_input($_POST["email"]);
    if (!filter_var($email, FILTER_VALIDATE_EMAIL) && $email =="" ) {
        $emailErr = "Enter valid email."; 
    }
    else
    {
        $emailErr = "";
    }

    if( $emailErr==""){
        mail($to,$subject,$message,$headers);
        header("Location:../thank-you.html");

    }
    else
    {
        echo $emailErr;
       header("Location:../error.html");
    }
}

【讨论】:

  • 不太确定将其粘贴到我现有代码的位置。
猜你喜欢
  • 2011-05-27
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
  • 2014-05-28
  • 2018-08-17
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多