Что я могу использовать вместо $ _SERVER ['HTTP_REFERER'] в PHP для получения согласованных данных о ссылочной ссылке? - PullRequest
1 голос
/ 03 ноября 2011

Я посмотрел руководство на php.net для $ _SERVER ['HTTP_REFERER'], и оно явно говорит о том, что оно ненадежно в зависимости от браузера, используемого на стороне клиента.Есть ли постоянная замена, которую я могу использовать для перенаправления веб-сайтов по ссылочной ссылке?

РЕДАКТИРОВАТЬ: я не осознавал ошибку в своем вопросе, пока кто-то не указал на это в комментариях - это для внутреннего URLтак как я пытаюсь автоматически перенаправить кнопку выхода, чтобы пользователю не приходилось видеть отдельное сообщение типа «Вы успешно вышли из системы» *

Ответы [ 3 ]

2 голосов
/ 03 ноября 2011

Вы можете передать местоположение, чтобы вернуться в ссылку выхода \ кнопку. если это ссылка, вы можете добавить ее в URL, если кнопка скрытое поле формы.

<a href="/sign-out.php?back=CURRENT_URL">

форма

<input type="hidden" name="back" value="CURRENT_URL">

CURRENT_URL = $_SERVER['PHP_SELF'] или что подходит для вашей системы.

1 голос
/ 03 ноября 2011

Короче говоря, нет, и не полагайтесь на HTTP_REFERER как на ненадежный и небезопасный.

Из руководства по PHP:

Адрес страницы (если есть), на которой агент пользователя текущая страница. Это устанавливается пользовательским агентом. Не все пользовательские агенты будут установите это, а некоторые предоставляют возможность изменять HTTP_REFERER как особенность. Короче говоря, этому нельзя доверять.

0 голосов
/ 03 ноября 2011

Другое решение - использовать для этого javascript, что-то вроде этого:

<?php
echo "<script>history.go(-1);</script>";
?>
...