Вы можете использовать сеанс, но он требует некоторого оборудования.
В случае успеха вы сохраняете сообщение для отображения.В случае ошибки вы сохраняете сообщение плюс полный список введенных данных формы, а также флаг для каждого поля, в котором произошла ошибка.Получающая страница должна прочитать этот материал из сеанса, сделать правильные вещи и очистить его.
С некоторыми осторожными проектными решениями вы можете избежать необходимости переписывать этот материал каждый раз, когда у вас есть страница с отображением формы.Вот еще о том, как мне это сделать (я не могу поделиться кодом сам по себе, но это не , что в любом случае хорошо):
Мой класс проверки формы автоматически сохраняет данные в сеансе, если онобнаруживает неверное представление, и мой класс визуализации формы проверяет его каждый раз, когда создается его экземпляр.Он также переопределит данные из БД (например, если вы редактируете существующую запись).Мой интерфейс сеанса автоматически удаляет устаревшие сообщения и данные формы.(Вы должны быть осторожны с AJAX или другими вещами, которые могут преждевременно очистить его при доступе к информации о сеансе.)