据我所知,使用白名单只会使用该列表中的所有内容,而使用黑名单时,它会使用列表中的所有内容。
但之后会发生什么?假设您使用白名单 - 如果输入的值包含白名单中没有的内容,您是否可以阻止提交输入?
我知道像这样的东西会减少所有不是空格的字符或数字:
preg_replace( "/[^a-zA-Z0-9_]/", "", $stringToFilter );
但是,如果我不想用空格存储在数据库中的值,该怎么办?有没有办法这样做,以便出现错误信息?使用if语句例如......
答案 0 :(得分:3)
据我所知,使用白名单只能使用其中的所有内容 这个列表和黑名单它使用了所有东西,但是它是什么 列表。
的preg_replace
您应该使用preg_match
或filter_var
使用标记FILTER_VALIDATE_REGEXP
而不是...更多内容如下。
但是,如果我不想用空格存储在数据库中的值,该怎么办?有没有办法这样做,以便出现错误信息?使用if语句例如......
您正在谈论验证,因此您需要查看:php.net/filter.filters.validate:
// false
var_dump( !filter_var('string with spaces', FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/[\s]+/i'))) );
// true
var_dump( !filter_var('string_with_no_spaces', FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/[\s]+/i'))) );
在if语句中包含上述内容,您就完成了。