2012-05-05 47 views
0

這不是檢查是否提到的字段是否存在。這兩個版本使用array_merge創建函數

第一版:

$error = array(); 
$field_sets = array('username','password','fullname','repeatpass','email'); 
foreach($field_sets as $fieldname){ 
    if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && $_POST[$fieldname] != 0)) { 
     $error[] = $fieldname; 
    } 
} 

版本二:

(in the includes file) 
function check_required_fields ($required_array){ 
    $error = array(); 
    foreach($required_array as $fieldname){ 
     if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && $_POST[$fieldname] != 0)) { 
      $error[] = $fieldname; 
     } 
    } 
    return $error; 
} 

In the Source File: 
$error = array(); 
$required_field = array('username','password','fullname','repeatpass','email'); 
$error = array_merge($error , check_required_fields($required_field , $_POST)); 
+0

很難說出問題所在,但我所看到的一件事就是您沒有使用傳遞給'check_required_fields'的第二個參數。它應該不重要,但它看起來仍然很有趣。 – DCoder

回答

0

我發現這個問題。我不小心把&&的邏輯。它應該是||而不是&&

  if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) || $_POST[$fieldname] != 0))