Добрый день! Есть вопрос по обработке формы.
Пишу следующий код php:
/*сначала задаю переменным "пустые" значения.*/
$lastnameErr = $firstnameErr = $middle_nameErr = "";
$lastname = $firstname = $middle_name = "";
$arrayErr = "";
$arrayErr = array("lastnameErr", "firstnameErr", "middle_nameErr");
/*далее делаю обработку формы*/
if ($_SERVER['REQUEST_METHOD'] == "POST") {
//проверяем запрощен ли скрипт post запросом, если да - обрабатываем так:
if (empty($_POST["lastname"])) {
$lastnameErr = "Не заполнено обязательное поле";
} else {
$lastname = test_input($_POST["lastname"]);
}
if (empty($_POST["firstname"])) {
$firstnameErr = "Не заполнено обязательное поле";
} else {
$firstname = test_input($_POST["firstname"]);
}
if (empty($_POST["middle_name"])) {
$middle_nameErr = "Не заполнено обязательное поле";
} else {
$middle_name = test_input($_POST["middle_name"]);
}
}
if (!empty($arrayErr)){
echo "Спасибо, Ваши данные успешно сохранены!";
}
/* доп пояснение: функция test_input отвечает за валидацию */
Форма в HTML выглядит так:<label>Фамилия:</label>
<input type="text" size="40" name="lastname" value= "<?php echo $lastname ?>" >
<span class="error">* <?php echo $lastnameErr;?></span>
<br><br>
<label>Имя:</label>
<input type="text" size="40" name="firstname" value= "<?php echo $firstname ?>" >
<span class="error">* <?php echo $firstnameErr;?></span>
<br><br>
<label>Отчество:</label>
<input type="text" size="40" name="middle_name" value= "<?php echo $middle_name ?>" >
<span class="error">* <?php echo $middle_nameErr;?></span>
<br><br>
<input type="submit" name="submit" value="Сохранить">
Необходимо, чтоб осуществлялась проверка на содержимое массива $arrayErr после нажатия на кнопку submit.
И только в случае если значения всех его переменных будут пустые, клиенту отображалось сообщение "Спасибо, Ваши данные успешно сохранены!".
Если же хоть одна переменная данного массива имеет какое-либо значение, отличное от empty, то такое сообщение выводить не надо, выполняется только вывод строки "Не заполнено обязательное поле".
Если есть другой вариант реализации данной идеи, пожалуйста, сообщите.
Заранее спасибо за ответ.