Создание функции с использованием 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));

1 ответ

Я нашел проблему. Я случайно поставил && в логике. Так должно быть || вместо &&,

          if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) || $_POST[$fieldname] != 0))
Другие вопросы по тегам