我对验证表单输入感到困惑。
例如,一个简单的表单,输入name
、email
、web address
、password
和textarea
据我了解,对于文本输入,我需要使用:
trim()
tripslashes()
htmlspecialchars()
FILTER_SANITIZE_STRING
对于电子邮件和网址
preg_match()
FILTER_SANITIZE_EMAIL
FILTER_SANITIZE_URL
FILTER_VALIDATE_EMAIL
FILTER_VALIDATE_URL
对于密码
hash()
我想有一种更简单的方法。请提出建议,如果可能的话,请提供正确验证的表格示例。
我建议在盲目地将它们用作"安全措施"之前了解它们中的每一个的作用,因为您可以弊大于利。
trim
是删除左侧或右侧的空格。
stripslashes
取消引号的字符串。
htmlspecialchars
HTML 中具有重要意义的特殊字符转换为 HTML 实体,您应该在输出 HTML 时使用它。
过滤器标志(FILTER_VALIDATE_EMAIL、FILTER_VALIDATE_URL等)与filter_var
函数一起使用,如下所示:
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
// Email is valid
}
对于密码,您可以使用指定哈希算法(md5、sha512 等)的 hash
函数。您可能还想查找密码盐以提供进一步的安全性。