Установка $ _SESSION ['HTTP_REFERER'] для перенаправления после входа в систему? - PullRequest
0 голосов
/ 24 января 2012

Я пытаюсь перенаправить людей на страницу, с которой они пришли после входа в систему.

$_SERVER['HTTP_REFERER'] ненадежен, так что вы думаете о том, что я установил $_SESSION['HTTP_REFERER'] на страницу, на которой они были до того, как ониВо-первых, вас перенаправили на страницу входа?

Я создаю приложение типа ajaxy-fadey-pretty-poncy-вида с переписанными URL-адресами, поэтому не хочу использовать что-то уродливое, например строку запроса для отправки.данные.

Есть мысли?Должен ли я использовать $_POST s вместо (немного боли)?

Ответы [ 2 ]

2 голосов
/ 24 января 2012

Это хороший подход - многие фреймворки предлагают такую ​​реализацию (symfony 1.4 fe $this->getUser()->setReferer($url);. Вы также можете оставить его в качестве параметра в $_GET (login.html?from=somepage). Обе они очень распространены. Третье возможное решение состоит в том, что вы отображаете окно входа в систему с тем же URL-адресом, так что вам не нужно выполнять никакой логики перенаправления.

1 голос
/ 24 января 2012

$_SESSION['HTTP_REFERER'], как правило, плохая идея, потому что это не HTTP Referrer, поэтому имя вводит в заблуждение, что является плохим.

Однако вы можете решить свою проблему, используя $_SESSION, так же, как и любой другой.другая информация, которую вы добавляете в запрос входа в систему, например, скрытое поле формы $_POST или параметр информации запроса $_GET.

. Позаботьтесь о том, чтобы при перенаправлении значение было правильно закодировано, действительный URIи в допустимом контексте, например, только перенаправление на ваш сайт (не на какой-либо другой сайт).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...