发送电子邮件时出现验证错误

validation error while sending email

本文关键字:验证 错误 电子邮件      更新时间:2023-09-26

我想发送电子邮件。 当我单击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>

发送电子邮件.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);
}
?>

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

if(isset($_POST['email'])) {}
     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
  }

试试下面的邮件:-

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));
        }
}

}