通过PHP将“表单”详细信息发送到SQL数据库,但需要以CORRECT格式发送详细信息

时间:2014-07-30 14:37:43

标签: php mysql

我写了一个"表格"在PHP中,可以通过输入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数据库吗?那段代码在哪里?在&#34; form.php&#34;或者在&#34; link.php&#34;?

1 个答案:

答案 0 :(得分:0)

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 (...............)";
    } 
}