【问题标题】:validation error while sending email发送电子邮件时出现验证错误
【发布时间】:2015-02-15 19:47:22
【问题描述】:

我想发送一封电子邮件。当我单击email 按钮并刷新页面时,它给了我验证错误“字段是必需的”,即使我输入了正确的电子邮件 ID。如果我输入了正确的电子邮件 ID,那么它也会出错。 我不知道我哪里出错了。谁能告诉我。这是我的php代码:

function validation1()
{
    document.getElementById("emailid").innerHTML="";

    var emailpattern=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
    if(document.form1.email.value=="")
    {
        document.getElementById("emailid").innerHTML="fields are mandetory";
        document.form1.email.focus();
        return false;
    }
    else if(!emailpattern.test(document.form1.email.value))
    {
        document.getElementById("emailid").innerHTML="enter valid id";
        document.form1.email.focus();
        return false;
    }
return true;
}

<?php include 'send-email.php';?>
<form name="form1" method="post">
<input type="submit" name="email" value="email" onclick="return validation1()" />
<input type="text" size="50" name="email" id="email" placeholder="*************" />
<span id="emailid"></span>
</form>

send-email.php 代码

<?php include 'connection.php'; ?>
<?php 
if(isset($_POST['submit'])) {
@$email=$_POST["email"];

$email=strip_tags($_POST["email"]);
$email=mysqli_real_escape_string($con,trim($email));

$to="sa@vs.com";
$to=mysqli_real_escape_string($con,trim($to));
$headers="From:".$email;
$message="Interested in VAPT";
$subject="email id";
if(mail($to,$subject,$message,$headers))
{
    $email="'".$email."'";

    $sql="insert into email_to_admin values($email)";
    if (!mysqli_query($con,$sql))
        {
            die('Error: ' . mysqli_error($con));
        }
}

mysqli_close($con);
}
?>

【问题讨论】:

    标签: javascript php email


    【解决方案1】:

    试试下面的邮件:-

    if($_POST["email"]){  // Add this if condition so that your mail will be send when button gets clicked.
    
    $to="sa@vs.com";
    $to=mysqli_real_escape_string($con,trim($to));
    $headers="From:".$email;
    $message="Interested in VAPT";
    $subject="email id";
    if(mail($to,$subject,$message,$headers))
    {
        $email="'".$email."'";
    
        $sql="insert into email_to_admin values($email)";
        if (!mysqli_query($con,$sql))
            {
                die('Error: ' . mysqli_error($con));
            }
    }
    
    
    }
    

    【讨论】:

    • 至少做一些解释,而不是仅仅交出可能适用于 OP 的代码。
    • 是的。我很容易生气,BDW 非常感谢。错误消失了。但是当我单击电子邮件按钮时,有一件事,它给了我验证错误。我做对了,但不知道为什么会这样。
    • document.form1.email.value 给你什么?请注意
    • 当我点击电子邮件按钮时,当我输入正确的 id 时,它会给出验证错误“所有字段都是强制性的”。
    • 提醒这个值:- document.form1.email.value
    【解决方案2】:

    您没有if() 语句来控制何时发送邮件。页面加载后,您立即发送邮件。使用

    if(isset($_POST['email'])) {}
    

    【讨论】:

    • 是的。我很容易生气,BDW 非常感谢。错误消失了。但是当我单击电子邮件按钮时,有一件事,它给了我验证错误。我做对了,但不知道为什么会这样。
    【解决方案3】:
         if(isset($_POST["email"]) && isset($_POST["email"] !="" )
         {
    
                 //send the email
    
         }
    

    我个人建议还放置一个反垃圾邮件验证码,这样可以确保新的 rendom 值不一样

    由于您还有另一个步骤可以帮助您,您还可以标记电子邮件地址以及其他一些值,例如 email_to_admin MySQL 表中唯一的主题,如果插入记录,则继续

      $sql="insert into email_to_admin values($email , $subject)";
      .....................
      $num = @mysql_affected_rows();
      if($num > 0)
      {
          //semd the email
      }
    

    【讨论】:

      猜你喜欢
      • 2016-07-27
      • 2013-11-24
      • 2018-08-24
      • 2018-11-22
      • 2017-02-26
      • 1970-01-01
      • 2019-10-20
      • 2014-06-07
      相关资源
      最近更新 更多