2014-03-26 42 views
0

我正在做一個調查網站。我只想知道是否真的有必要通過使用isset!empty驗證每個POST數據到數據庫中。我有大約30列,我覺得它是多餘的。在php中驗證一堆表單數據 - 是否有必要?

有沒有比這更清潔的方法?

編輯:

如果我有可選字段?我該如何解決這個問題?

+0

沒有也不會'[NULL,NULL,NULL]'是不是'空()' –

回答

0

你可以做到這一點這樣的方式:

PHP 5.5:

if(!empty(array_filter($_POST))) 
{ 
    //there are non-empty fields in $_POST 
} 

PHP < 5.5:

$filtered = array_filter($_POST); 
if(!empty($filtered)) 
{ 
    //there are non-empty fields in $_POST 
} 

這種差異是因爲PHP 5.5 empty()之前無法接受非 - 變量(例如表達式)

編輯:如果你有一些可選字段,那麼你就可以解決這個問題,例如,具有強制性的字段列表:

$array  = ['one'=>36, 'two'=>null, 'three'=>'data', 'four'=>0]; 
$mandatory = ['one', 'three']; 

$data = array_intersect_key($array, array_flip($mandatory)); 
if(!empty($data)) 
{ 
    //all mandatory fields are not empty 
} 
+0

如果我有可選字段? – Wax

+0

然後,你需要決定哪些是可選的,並將它們分開(檢查編輯) –

+0

嘿,男人。將測試這一點。這看起來像一個天才ID。無論如何,只是爲了弄清楚事情。強制性數組是我通過使用name屬性來放置必填字段的地方嗎? – Wax