@skillu

Как реализовать отображение ошибок валидации формы, если обработчки находится в другом файле PHP?

Здравствуйте!

Не смог найти нигде ответ на следующей вопрос, надеюсь на вашу помощь.

Дано:
- файл с html-формой: index.php;
- обработчик формы находится в другом файле: processing.php;

Все ошибки в обработчике собираются в строку и помещаются в переменную $errors.
Как передать эту переменную в файл index.php, если валидация формы не прошла успешно? Понятно, что если нет ошибок валидации то мы просто используем header().
Но если ошибки есть, то мне необходимо сохранить массив $_POST (что бы заполненные поля сохранили свои значения после перезагрузки страницы) + передать каким-то образом переменную $errors. Как, на ваш взгляд, лучше всего это реализовать?
  • Вопрос задан
  • 2971 просмотр
Пригласить эксперта
Ответы на вопрос 1
bigton
@bigton
Web-программист
Через $_SESSION

Вот такой обработчик должен быть в form.php
if (isset($_POST['add'])) {
            
    $id = isset($_POST['id']) ? (int) $_POST['id'] : 0;
    $msg = isset($_POST['msg']) ? (string) $_POST['msg'] : '';
    
    $_SESSION['form'] = [
        'id' => $id,
        'msg' => $msg,        
        ];
    
    if ( ! $id || ! $msg) {
        
        $_SESSION['form']['error'] = [
            'error' => [
                'id_empty' => ! $id,
                'msg_empty' => ! $msg,
                ],
            ];                            
    } else {
        
        $Msg->add($id, $msg);
    }
    
    header('Location: /index.php');
    exit; 
}


А в index.php смотрите, если error - значит форма заполнена с ошибками.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы