我正在编写一个联系人表单,我想使用filter_put验证和净化用户输入问题是,因为我对每个POST变量都使用它,所以我应该先验证然后消毒吗?我的建议如下:
if (!filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)) {
exit ();
} else {
$email = $_POST['email'];
}
这样可以吗?或者我必须重新清理$_POST〔电子邮件〕
感谢
试试这个:
if ( !$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)) {
exit();
}
echo $email
我认为在使用FILTER_VALIDATE_EMAIL
之前先使用FILTER_SANITIZE_EMAIL
会更好。此外,我建议制作一个正则表达式,强制电子邮件地址符合您想要接受的电子邮件地址。FILTER_SANITIZE_EMAIL
和FILTER_VALIDATE_EMAIL
在接受的字符方面都非常自由(RFC允许的字符种类比你想要允许的要多,而且在你可能不想看到它们的地方)。