все! У меня было ужасное время, пытаясь понять, почему моя проверка формы не распознает пустые поля и возвращает их как ошибки.PHP Not Reading Form Fields As Empty
Вот функция, я использую, чтобы проверить поля:
function check_required_fields($required_array) {
$field_errors = array();
foreach($required_array as $fieldname) {
if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && $_POST[$fieldname] != 0)) {
$field_errors[] = $fieldname;
}
}
return $field_errors;
}
Тогда моя форма процесса, как это:
if (isset($_POST['submit'])) { // Form has been submitted.
$errors = array();
// perform validations on the form data
$required_fields = array('client', 'banner', 'district', 'store', 'position', 'first_name', 'last_name', 'email', 'password');
$errors = array_merge($errors, check_required_fields($required_fields, $_POST));
и AN оператор проверяет IF на наличие ошибок:
if (empty($errors)) {
$query =
Проблема в том, что даже если мои поля пустые (и я проверил их с помощью var_dump ($ _ POST)) PHP выполняет запрос $. Я думаю, что что-то не так с функцией. Надеюсь, кто-то может помочь мне обнаружить ошибку!
Вот суть моего HTML-код:
<form action="registration.php" method="post">
<label for="first_name" class="medium">First Name</label>
<input type="text" name="first_name" class="textbox short_field">
<button type="submit" name="submit" value="submit" class="form-submit-button">SUBMIT</button>
</form>
Я также использую следующие функции для проверки длины строки и она работает просто отлично:
function check_max_field_lengths($field_length_array) {
$field_errors = array();
foreach($field_length_array as $fieldname => $maxlength) {
if (strlen(trim(mysql_prep($_POST[$fieldname]))) > $maxlength) { $field_errors[] = $fieldname;
}
}
return $field_errors;
}
и
$fields_with_lengths = array('first_name' => 30, 'last_name' => 30, 'email' => 50, 'password' => 30);
$errors = array_merge($errors, check_max_field_lengths($fields_with_lengths, $_POST));
И в HTML-код? Вы должны включить 'method = 'POST'' в свой тег формы. –
Вы 'var_dump ($ errors)', чтобы увидеть, что там? –
Функция 'check_require_fields()' принимает только один аргумент, но вы вызываете ее с двумя. –