2012-05-05 2 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))