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