2009-07-06 3 views
0

Мне нужно определить, на какой странице только что пришел пользователь, чтобы определить, какие ссылки отображать, например, панировочные сухари или ссылки на предыдущий следующий элемент. Это в основном функциональность HTTP_REFERER в PHP, но мне нужен способ отслеживания ее на нескольких страницах. Мне также нужно «поддержать» кнопку «Назад».Способы отслеживания ссылки на страницу для создания других ссылок?

Я заметил, что Facebook использует запрос/get параметр «ref» для отслеживания ссылочной страницы. (Они также избегают перезагрузки всей страницы, используя AJAX вместо этого, но у меня нет бюджета, чтобы сделать это прямо сейчас.) Кроме того, сайт, над которым я работаю, должен быть проиндексирован Google, поэтому этот метод также будет необходимо добавить canonical link tag.

Мне интересно, является ли параметр запроса ref/referrer лучшим методом или какие существуют другие варианты?

ответ

3

Если вы хотите панировочные сухари, вы не должны использовать HTTP_REFERER. Это должен быть логический путь, чтобы добраться туда, где они есть, независимо от того, откуда они пришли, например, User > Albums > AlbumName > Photo, даже если они пришли по прямой ссылке, которую их дал им друг. Тем не менее, если вы хотите вернуться на несколько страниц, просто сохраните их как массив в переменной SESSION.

Я уверен, что Facebook использует только переменную GET, чтобы собирать статистические данные о том, какие кнопки используются пользователями, поскольку есть несколько способов добраться до одной и той же страницы.

Ничего из этого не должно сломать кнопку «Назад» или ввести в действие ваш канонический тег.


Из комментариев: Вы можете использовать ?ref=blah тег или переменные сеанса, ($_SESSION['history'][0] = $_SERVER['HTTP_REFERER'] или REQUEST_URI). Используйте все, что вам будет легче. Переменные сеанса полагаются на файлы cookie или передают идентификатор через URL-адрес, GET просто загромождают URL-адрес и могут передаваться друзьям.

+0

Я не уверен, что получаю то, что вы говорите. Нет, я знаю, что не могу использовать сеанс, потому что люди не просматривают другие страницы перед просмотром страницы. Я знаю, что не могу использовать HTTP_REFERER. Итак, вы говорите, что тег ref является лучшим или что-то еще? Кажется, вы говорите, что все неправильно. –

+0

Что вы пытаетесь сделать точно? Если вы хотите сохранить последние 5 страниц, просмотренных пользователем, поместите их в переменную сеанса. Если вы хотите получить панировочные сухари, то сгенерируйте их, основываясь исключительно на текущей странице, на которой они находятся, независимо от того, где они были. В моем примере, если пользователь просматривает фотографию, вы можете отображать панировочные сундуки, такие как «Пользователь»> «Альбомы»> «AlbumName»> «Фото». Для этого вам не нужен HTTP_REFERER или что-то еще, просто какая-то логика программирования. – mpen

+0

Я говорю, что Facebook не использует тег ref для создания ссылок вообще. Они используют его для мониторинга того, как посетители используют свой сайт, чтобы они могли определить, какие кнопки больше всего нажали. Ничего общего с сухарями. – mpen

Смежные вопросы