Я читал, как на SO, так и на других сайтах, что $_SERVER['HTTP_REFERER']
- это то, чего мы, программисты, должны всегда избегать.Читая руководство по PHP, мы сталкиваемся со следующими строками:
Адрес страницы (если есть), которая направляла пользовательский агент на текущую страницу.Это устанавливается пользовательским агентом.Не все пользовательские агенты будут устанавливать это, а некоторые предоставляют возможность изменять HTTP_REFERER как функцию.Короче говоря, этому нельзя доверять.
Учитывая «пользовательские агенты», такие как веб-браузер (Safari, Chrome, Opera, Firefox, в основном все они), руководство говорит нам, что эта переменнаямогут быть изменены ими.Вот мой первый вопрос:
Вопрос 1 : почему «агент пользователя» должен изменить этот параметр?Почему веб-браузер не устанавливает этот параметр?
Это просто любознательность, и я не буду использовать $_SERVER['HTTP_REFERER']
.Из моего последнего заявления, очевидно, что если нам нужна такая функция, нам нужно что-то придумать.Первое, что приходит мне в голову, это решение для файлов cookie, в котором мы делаем что-то вроде:
setcookie('latest_page', __FILE__, 60 * 60 * 24 * 7);
А затем, основываясь на том, как вы предпочитаете это делать, вы можете восстановить то, что вам нужно.Здесь встает второй и последний вопрос:
Вопрос 2 : Это лучший способ?Есть ли способ улучшить его?