Перенаправление PHP с сообщением - PullRequest
1 голос
/ 19 апреля 2011

У меня есть контроллер, который отображает и обрабатывает обратную передачу для формы.Контроллер перенаправляет на другую страницу после того, как форма успешно подтверждена и данные обработаны соответствующим образом.

Перенаправление завершено с чем-то, эквивалентным:

@header('Status: 303 See other');
@header('Location: ' . $redirect_uri);

Что является наиболееНадежный способ для контроллера предоставить сообщение, которое должно быть отображено на новой странице?Существует ли стандартная практика для этого?

, т. Е. «Ваша учетная запись была успешно обновлена».

Моя мысль состоит в том, чтобы помещать динамически генерируемые сообщения в переменную сеанса и указывать предопределенное сообщение суникальный идентификатор в самом URI:

$_SESSION['previous-response-msg'] = "Account of '$user_name' was updated.";

or

$redirect_uri = 'http://example.com/other-page?msg=42';

Ответы [ 4 ]

2 голосов
/ 19 апреля 2011

Ваш второй способ - отличный способ настроить небезопасный контент страницы.Где бы вы ни хотели, чтобы сообщение появилось на вашей странице, вы могли бы ...

if (isset($_GET['msg']) && $_GET['msg'] == '42') {
    echo '<div>Your account was successfully updated</div>';
}

Я думаю, достаточно просто.

1 голос
/ 19 апреля 2011

Использование сессии позволит более гибкие сообщения, но в любом случае будет работать.Я не знаю никакой «лучшей практики».

1 голос
/ 19 апреля 2011

Одно время сообщение в переменной сеанса работало нормально для меня. Я не вижу большой проблемы здесь, особенно для сообщений типа статуса.

Если вы используете фреймворк, вполне возможно, что он встроен.

0 голосов
/ 19 апреля 2011

Не могли бы вы использовать ajax, а затем добавить коллбэк при успехе и неудаче, который отображает данные ответа из файла, который вы тоже отправили?

...