$_SERVER["HTTP_REFERER"] не видит url если пришли по onClick="location.href=...

12
P
На сайте с 06.01.2009
Offline
601
4535

Ребят, извините, что много вопросов.

Почти справился с задачей, но есть одно но!

$_SERVER["HTTP_REFERER"] не передает url если пришлит по нажатию на картинку, т.к. с картинки ссылка такого вида

onClick="location.href='test/str4.php'

Попробовал, сделал с картинки ссылки нормально вида, через <a href="">картинка</a> всё гут.

Но можно ли как то сохранив onClick, получить url от куда пришли в страницу? спасибо

gormarket
На сайте с 29.12.2010
Offline
47
#1

скорей всего такого решения для onClick нет.

Но и задачу Вы себе поставили (получать информацию о том откуда пришел посетитель) не имеющую решения в 100% случаев, даже если отслеживать переходы внутри одного сайта.

Вы не учитываете еще что в некоторых браузерах реферер не передается или в браузере настраивается чтобы он не передавал эту информацию.

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

Это тоже не может гарантировать 100% точность (например открыто несколько вкладок в браузере и посетитель пользуется то одной, то другой вкладкой).

Но совместно с $_SERVER["HTTP_REFERER"] это может повысить точность определения очередности посещения страниц.

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
P
На сайте с 06.01.2009
Offline
601
#2
gormarket:
Вы не учитываете еще что в некоторых браузерах реферер не передается или в браузере настраивается чтобы он не передавал эту информацию.

Но мне вот здесь посоветовали это применить, а не

<?php session_start(); $_SESSION['razdel'] = 1; ?>

С очередностью посещения страниц все немного проще.

Надо всё таки знать только предыдущую страницу (а не набор ранее посещенных страниц), т.е. url страницы с которой юзер вошел в модель достаточно.

Вообщем, извините, выставлю на всеобщее обозрение, дабы если кто то сможет проверить всё ли работает, буду очень признателен. Наверное на форуме показываю впервые, (переставил в подпись). Пожалуйста, погуляйте кто может по разделам. Также сделал, вывод крошек если юзер пришел например с поиска. Я бы дал ссылку, но наверное за спам посчитаете.

Что посоветуете?

Appassionato
На сайте с 22.06.2010
Offline
319
#3

this.href='test/str4.php';

this.click();
Хостинг Работает, как Часы ( http://tinyurl.com/nze85xw ). Проверено за 11+ лет.
P
На сайте с 06.01.2009
Offline
601
#4

Appassionato, это прописывать вместо onClick="location.href='test/str4.php' ?

ps И кто что скажет, действительно $_SERVER["HTTP_REFERER"] с ним проблемы по определению url от куда юзер пришел?

Просто у меня все работает...Но как у других проверить не знаю.

ps. Блин целый день парился, сделал то что надо, сейчас смотрю вебвизор, действитльно у некоторых юзеров не определяет браузер url внутряка от куда пришел в модель юзер (гугл хром например). Жесть, целый день убил.

Не знаете как в вебвизоре посмотреть много ли таких у кого не определяется Refferer

Appassionato
На сайте с 22.06.2010
Offline
319
#5
postavkin:
Appassionato, это прописывать вместо onClick="location.href='test/str4.php' ?

Именно.

postavkin:
ps И кто что скажет, действительно $_SERVER["HTTP_REFERER"] с ним проблемы по определению url от куда юзер пришел?

Проблема не в $_SERVER["HTTP_REFERER"], а в том, что некоторые браузеры (IE в частности) не передают реферер для JS-редиректов и мета-рефреш, а ФФ не передает для мета-рефреш.

P
На сайте с 06.01.2009
Offline
601
#6

Appassionato, скажите, пожалуйста, а если в <?php session_start(); $_SESSION['razdel'] = текущий урл; ?> записывать адрес текущей страницы (допустим мы в странице раздела выбираем модель), а в странице модели смотреть чему равен razdel, так реально сделать или тоже есть проблемы?

---------- Добавлено в 22:51 ---------- Предыдущее сообщение было в 22:48 ----------

Appassionato:
Проблема не в $_SERVER["HTTP_REFERER"], а в том, что некоторые браузеры (IE в частности) не передают реферер для JS-редиректов и мета-рефреш, а ФФ не передает для мета-рефреш.

Проверял у себя в IE и Mozila всё гут, поэтому и расстроен что оказывается у многих юзеров не отобржается то что целый день делал 😕

Appassionato
На сайте с 22.06.2010
Offline
319
#7

По первому - могут, т.к. юзер может открыть больше одной вкладки.

По второму - плохо смотрели (не та версия IE, например). 6-ой ИЕ точно реф не отправлял. По остальным не помню - давно сталкивался с решением подобных задач.

Flash.UA
На сайте с 11.09.2007
Offline
46
#8

Попробуйте просто по-другому реализовать задачу. Вместо онклика оборачивайте картинку в честную ссылку. Используйте метод wrap() в jQuery и повесьте его на document.ready(). Такая ссылка индексироваться не будет.

http://api.jquery.com/wrap/

Или для вас принципиально важно оставить onClick?

P
На сайте с 06.01.2009
Offline
601
#9
Flash.UA:
Попробуйте просто по-другому реализовать задачу. Вместо онклика оборачивайте картинку в честную ссылку. Используйте метод wrap() в jQuery и повесьте его на document.ready(). Такая ссылка индексироваться не будет.
http://api.jquery.com/wrap/
Или для вас принципиально важно оставить onClick?

Нет не принципиально, спасибо за совет.

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#10

function openUrl(url)

{

var fakeLink = document.createElement('a');

// Firefox & other browsers

if (typeof(fakeLink.click) == 'undefined')

{

location.href = url;

}

// Internet Explorer

else

{

fakeLink.href = url;

document.body.appendChild(fakeLink);

fakeLink.click();

}

return true;

}

---------- Добавлено 22.01.2012 в 13:44 ----------

onClick="openUrl('test/str4.php')"

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий