Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
 Аватар для ProCode
37 / 37 / 6
Регистрация: 11.12.2016
Сообщений: 329
Записей в блоге: 6

Как правильно передать значение document.referrer через GET если пользователь из поисковика?

26.01.2017, 20:55. Показов 10650. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!

Ситуация стандартная, формирую код типа

JavaScript
1
2
3
<script language='javascript'><!--
document.write('<img src="http://stat.ru/counter.png?ref=' + encodeURIComponent(document.referrer) + '" />');
//--></script>
и оно, в общем-то, работает, на стороне сервера в PHP

PHP
1
$_GET['ref']
содержит всё, что и должно содержать.

Но это если реферер - обычный сайт, или Google.

А вот если реферер содержит, скажем, урл из поискового запроса Яндекса (или другого поисковика) - не работает.

То есть, в этом случае $_GET['ref'] содержит какой-то адский ад (содержимое специально посмотрел через alert), длиной символов 500, не меньше, и сформированная картинка вообще не функционирует, то есть браузер за ней к серверу, судя по всему, не обращается.

Пробовал экранировать содержимое document.referrer и так

JavaScript
1
escape(document.referrer)
и вообще не экранировать.

Результат одинаков - document.referrer из поисковика ломает код, и счетчик этот запрос не записывает вовсе.

Кто виноват? Что делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.01.2017, 20:55
Ответы с готовыми решениями:

Как передать referrer в iframe через jQuery?
Приветствтую. Подскажите, пожалуйста, что в коде поменять мне. Я уже кучу вариантов перепробовал. $(document).ready(function (){ ...

QWeView подмена document.referrer
Каким образом можно установить свой document.referrer?

Помогите с передачей ''''document.referrer'''' от HTML на PHP
Помогите с передачей ''''document.referrer'''' от HTML на PHP! Кто знает как это сделать пожалуйста напишите. Только пожалуйста не...

2
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
26.01.2017, 22:01
ProCode, https://yandex.ru/blog/webmaster/19042
1
 Аватар для ProCode
37 / 37 / 6
Регистрация: 11.12.2016
Сообщений: 329
Записей в блоге: 6
26.01.2017, 23:15  [ТС]
Цитата Сообщение от Padimanskas Посмотреть сообщение
Это ответ на вопрос "кто виноват?", а мне нужно на смежный

Хорошо, пойдем по варианту Б )) сейчас новой темой сделаю, бо это другая задача получается.

Добавлено через 12 минут
Как вырезать кусок строки, содержащий url? - сделал отдельной темой

Добавлено через 24 минуты
Проблема частично решена (см. по ссылке выше) - просто вырезал первые 128 символов из реферера и передал их на сервер вместо самого реферера. Заходы с Яндекса стали нормально узнаваться (хотя и обрезанно).

А вот bing и mail.ru даже так не работают. Видимо там что-то совсем уж плохое

Добавлено через 27 минут
bing и mail.ru вылечил уменьшением вырезаемого кусочка до 64 символов.

Понятия не имею почему так происходит.

Но для моей ситуации сойдет и так (поисковая строка - не критична).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.01.2017, 23:15
Помогаю со студенческими работами здесь

Как правильно передать значение ' 123' ?
как правильно передать значение ' 123' str=' 123' //строка из 6 символов передаем default.asp?ID=str получаем str =...

Как правильно передать кириллицу через сокеты?
У меня есть TCP клиент в телефоне и TCP сервер на ноуте. Когда я передаю английские сообщения(символы ASCII) все передается нормально. А...

Как правильно передать массив через указатель?
#pragma once #include &lt;vector&gt; class TOMathModel { public: TOMathModel(void); ~TOMathModel(void);

Как можно насильно записать в страницу любое значение HTTP-REFERRER ?
Люди помогите, как можно насильно записать в страницу любое значение HTTP-REFERRER ???

Как правильно передать подсчитанное значение массива в класс?
в методе ReadData я считываю файл и заношу данные в двумерный массив massiv, инициализирую тоже в этом методе потому что заранее не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru