我正在编写联系表单,我想使用filter_input验证和清理用户输入 问题是,因为我将它用于每个POST变量,我应该进行验证然后消毒还是什么?我的建议如下:
if (!filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)) {
exit ();
} else {
$email = $_POST['email'];
}
这样可以,或者我必须重新清理$ _POST ['电子邮件']
由于
答案 0 :(得分:4)
试试这个:
if ( !$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)) {
exit();
}
echo $email
答案 1 :(得分:0)
我认为在使用FILTER_SANITIZE_EMAIL
之前使用FILTER_VALIDATE_EMAIL
会更好。此外,我建议制作一个正则表达式,强制电子邮件地址符合您要接受的电子邮件地址。 FILTER_SANITIZE_EMAIL
和FILTER_VALIDATE_EMAIL
在他们接受的角色中都非常宽松(RFC允许的字符比您想要允许的更多种类,并且在您可能不关心的地方)。< / p>