filter input-PHP filter_input验证和净化


filter input - PHP filter_input validate and sanitize

我正在编写一个联系人表单,我想使用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_EMAILFILTER_VALIDATE_EMAIL在接受的字符方面都非常自由(RFC允许的字符种类比你想要允许的要多,而且在你可能不想看到它们的地方)。