使用PHP提供的filter_var()
和sanitize_var()
来过滤和清理变量,或者有更好的选择,这是最佳做法吗?
谢谢。
答案 0 :(得分:0)
我会一直考虑以下口头禅...... “永远不要相信用户输入” ctype_alpha,ctype_alnum也是表现良好的验证器,并记得验证客户端(javascript验证),这也有助于减少服务器负载
答案 1 :(得分:0)
我想提及HTML Purifier任何HTML过滤/清理。
对于通用验证(数字,日期和其他值),有很多库,还有内置函数,你可以选择最合适的,但我仍然想提到{{3}如果你已经使用了Zend Framework。
答案 2 :(得分:0)
让我们尝试验证表单中的输入。
我们需要做的第一件事就是确认我们正在寻找的输入数据。
然后我们使用filter_input()函数过滤输入数据。
在下面的示例中,输入变量“email”被发送到PHP页面:
答案 3 :(得分:0)
我认为最好使用HTML5进行客户端验证,然后使用服务器端。 PHP具有过滤字符串的FILTER_SANITIZE_STRING(尽管您不需要验证)等功能,您可以使用FILTER_VALIDATE_EMAIL而不是使用正则表达式手动验证电子邮件。您还可以使用限制,例如多少字符等。
概念上的例子......
if form is submitted
if 'name' is not empty
create a variable that equals filter_var($_POST['name'], FILTER_SANITIZE_STRING)
if 'name' is empty then set echo an error message
if 'email is not empty
create a variable that equals filter_var($_POST['email'], FILTER_SANITIZE_STRING)
// then you can validate email
if (!filter_var($email, FILTER_VALIDATE_EMAIL))
error message
// do this for other variables
if there's not error
send email and or a thank you message
//FORM here