2012-04-09 97 views
0

我知道,使用白名單時,它只使用該列表中的所有內容,並使用黑名單,它使用除列表中的內容外的所有內容。使用PHP瞭解黑名單和白名單

但之後會發生什麼?假設您使用白名單 - 如果輸入的值包含不在白名單中的內容,您是否可以阻止提交輸入?

我知道,這樣的事情將減少一切,是不是一個字符或數字與空格:

preg_replace("/[^a-zA-Z0-9_]/", "", $stringToFilter); 

但是如果我沒有想存儲在與空白數據庫中的值。有沒有辦法做到這一點,以便發生錯誤信息呢?如果使用例如報表...

+2

我不明白你的問題。 – Alp 2012-04-09 22:29:40

+0

你能解釋一下你的問題嗎? – 2012-04-09 22:31:16

+2

從白名單到空白的驚人過渡... – 2012-04-09 22:34:36

回答

3

據我所知,使用白名單,只使用一切內 該名單與黑名單它使用一切,但在 列表。

  • 白名單:項目被批准
  • 黑名單:

    您應該使用preg_matchfilter_var與那些批准

的preg_replace項目國旗FILTER_VALIDATE_REGEXP反而...更多在這下面。

但是,如果我不想用空白值存儲在數據庫中的值。有沒有辦法做到這一點,以便發生錯誤信息呢?如果使用例如報表...

你正在談論的驗證,所以你會看: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語句上面在和你做。