realt
@realt

Каким образом можно реализовать редирект с условием?

Например вот всем известный способ редиректа:
if($_POST['submit']) {
header('Location: http://www.site.ru/target.php');
}

...перенаправление осуществляется при условии если кнопкой, мы отправим форму с "POST"ом.
У меня после отправки формы БЕЗ редиректа, на страничке приписывается action, и выводятся print-ами различные сообщение об успешной или не успешной отправке формы. Мне необходимо, чтобы С редиректом, эти сообщения об отправке, выводились ПОСЛЕ редиректа на страничке, на которую проредиректилось все это дело так сказать. :)
....
(уже без action естественно).
Пример:
site.ru/target/?action=save - страничка после отправки формы и на ней отображается print вывод html элементов и текста....
site.ru/target/ - это страничка на которую мы будем собственно редиректить, но на ней уже не будут выводится print-aми, те элементы что выводились на site.ru/target/?action=save после отправки формы, а необходимо чтобы выводились.
  • Вопрос задан
  • 2531 просмотр
Решения вопроса 1
AMar4enko
@AMar4enko
В фреймфорках это называется флэш-состояние.
Смысл простой - перед редиректом вы сохраняете в сессии некую информацию, делаете редирект.
Код, который обрабатывает url, на которую был осуществлен редирект, проверяет сессию на предмет сохраненной информации, которую мог оставить предыдущий обработчик - если она там есть, то опираясь на нее он чего-то дополнительно делает (например, выводит сообщения об ошибках и.т.д). Флеш - потому что эта информация живет только в течение одного запроса после ее помещения в сессию, этим занимается фреймворк (обычно есть возможность сказать фреймворку продлить жизнь флеш-состояния, но это нюансы).
Вот, например, Yii - www.yiiframework.com/doc/api/1.1/CWebUser#setFlash...
Вот Zend - framework.zend.com/manual/2.2/en/modules/zend.mvc....
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы