发送“form"通过PHP将详细信息发送到SQL数据库,但需要以正确的格式发送详细信息


Sending "form" details to SQL database via PHP, but need to send details in CORRECT format

我用PHP写了一个"form",可以在浏览器上输入form. PHP查看结果。代码的一部分(下面显示的代码是高度截断的形式)处理电子邮件验证:

<?php
  if (empty($_POST["date"])) {
     .........
     $dateErr = "Invalid date format";
  }
?>

如果用户输入的电子邮件格式错误,则产生警告。我有另一个名为link.php的PHP文件,它接受用户在表单中输入的详细信息,然后将它们传输到SQL数据库(这里只显示了部分代码):

<?php  //link.php
    $con=mysqli_connect("host_name","user_name","passwd","db_name");
    ...........
    $mail = ....($con, $_POST['mail']);
    $sql="INSERT INTO table_name (mail,......)
          VALUES (...............)";
 ?>

我输入了一封故意用错误格式写的电子邮件,它出现在SQL数据库中——这不是我想要的。是的,当电子邮件以错误的格式编写时,我的代码会告诉我,但这并不能阻止错误编写的电子邮件最终出现在我的数据库中。你们这些PHP专家能告诉我如何写一段代码来防止错误格式的电子邮件到达SQL数据库吗?这段代码放到哪里了?在"form.php"还是在"link.php"?

if(!empty($_POST['mail']))
    $mail=strip_tags(stripslashes($_POST['mail']));
else
   echo "No email provided";

if(isset($mail)){
    if (!filter_var($mail, FILTER_VALIDATE_EMAIL)){
         echo "Email is in invalid format";
    }else{
         $con=mysqli_connect("host_name","user_name","passwd","db_name");
         $sql="INSERT INTO table_name (mail,......)
                           VALUES (...............)";
    } 
}