cotonti.com : Откуда пришёл пользователь https://www.cotonti.com Son konu mesajları Cotonti en Mon, 13 Oct 2025 13:55:32 -0000 g.galashev спасибо

]]>
Sal, 06 Kas 2012 17:46:53 -0000
Macik #36052 g.galashev:

2Macik: поменял код, результат тот же. Может я неправильно переходы делаю? Я просто захожу на любой сайт, а потом в адресной строке браузера пишу свой адрес. Или причина ещё где-то может быть?

Нет, чтобы передался Referrer надо чтобы на сайте стояла ссылка на твой,  и уже по ней переходить надо.

Added 4 days later:

Сделал такой эксперимент присвоил переменной $membref значение 'qwerty' и попробовал его отправить по почте, в ответ пришла пустота.

Вот кусок кода:

$membref = 'qwerty';
$headers = ("From: ".$name."<".$email.">\n");
$body = $L['plu_notice']." ".$name.", Email: <".$email.">, Tel: ".$phone."\n\n";
$body .= $L['plu_message'].": \n\n".$message."\n";
$body .= "URL: ".$memb_ref;

 

Что не так? Почему обнуляется значение переменной $membref        ?

В первой строке $membref;  а в последней $memb_ref;

Cоветую установить какую-либо IDE для редактирования файлов. Типа PHPStorm поможет избежать лишних ошибок. А если настроишь там отладчик, то вообще будет сказка.

 

]]>
Sal, 06 Kas 2012 03:35:10 -0000
g.galashev 2Dayver: ответил

Added 22 minutes later:

2Macik: поменял код, результат тот же. Может я неправильно переходы делаю? Я просто захожу на любой сайт, а потом в адресной строке браузера пишу свой адрес. Или причина ещё где-то может быть?

Added 4 days later:

Сделал такой эксперимент присвоил переменной $membref значение 'qwerty' и попробовал его отправить по почте, в ответ пришла пустота.

Вот кусок кода:

$membref = 'qwerty';
$headers = ("From: ".$name."<".$email.">\n");
$body = $L['plu_notice']." ".$name.", Email: <".$email.">, Tel: ".$phone."\n\n";
$body .= $L['plu_message'].": \n\n".$message."\n";
$body .= "URL: ".$memb_ref;

 

Что не так? Почему обнуляется значение переменной $membref        ?

]]>
Per, 01 Kas 2012 19:00:21 -0000
Macik

Added 3 hours later:

Или здесь ошибка: $memb_ref = (isset($_SESSION['ref']) && !empty($_SESSION['ref']));

Если я правильно понимаю, то в  $memb_ref  у вас попадет true или false. А по логике должна попасть сам адрес. Т.е тогда надо писать: 

$memb_ref = !empty($_SESSION['ref']) ? $_SESSION['ref'] : '';

 

]]>
Per, 01 Kas 2012 05:07:46 -0000
Dayver Я предложил свою помощь в ЛС, вы не ответили

]]>
Çrş, 31 Eki 2012 19:54:07 -0000
g.galashev Только что включил комп и перешёл на свой сайт с этого сайта, результат - пустота. Где-то прокол. Может нельзя прямо в common.php пихать код? Или здесь ошибка? Или я что-то где-то не объявил?

 

Added 3 hours later:

Или здесь ошибка: $memb_ref = (isset($_SESSION['ref']) && !empty($_SESSION['ref']));

]]>
Çrş, 31 Eki 2012 15:31:01 -0000
Dayver Надо перейти с гугла например - тоесть добится заведения новой сессии - а если у вас был открыт сайт в браузере то в рефах будет ваш сайт а значит в сессию попадет пустота ибо свой сайт мы тудане пишем

Добавлено 14 минуты спустя:

Я в таких случаях просто открываю другой браузер (например работаю в хроме то для проверки открою в опере) и захожу на сайт через поиск гугла - далее провожу пробный заказ(отправку фидбек сообщения) и в итоге наблюдаю в базе рефку с гугла

]]>
Sal, 30 Eki 2012 20:20:29 -0000
g.galashev написал прямо в файл common.php  сразу после session_start():

if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && strripos($_SERVER['HTTP_REFERER'], 'buropp.ru') === false) $_SESSION['ref'] = $_SERVER['HTTP_REFERER'];

 

затем в плагин, отправляющий сообщение:

$memb_ref = (isset($_SESSION['ref']) && !empty($_SESSION['ref']));

и потом включил переменную $memb_ref  в отправку в теле письма, но почему-то на почту пришло пустое сообщение, без url. Какие могут быть причины? Может я накосячил?

]]>
Sal, 30 Eki 2012 20:18:38 -0000
Dayver Будет работать. Сессии в PHP

]]>
Sal, 30 Eki 2012 20:05:01 -0000
g.galashev изящно, спасибо!

Added 1 days later:

А будет ли это работать, если много пользователей на сайте одновременно? Ведь переменная $_SESSION['ref'] у нас одна.

]]>
Pzt, 29 Eki 2012 16:51:18 -0000
Dayver
Первая строка должна вызыватся при попадании пользователя на любую страницу сайта (для этого подходят хуки типа global или например у меня header.tags)

if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && strripos($_SERVER['HTTP_REFERER'], 'мойсайт.com.ua') === false) $_SESSION['ref'] = $_SERVER['HTTP_REFERER'];

Вторая строка располагается в файле который отсылает ваш емейл (у меня это файл который пишет инфо о заказе в базу).

$memb_ref = (isset($_SESSION['ref']) && !empty($_SESSION['ref'])) ? $db->prep($_SESSION['ref']) : '';


Вот и все ]]>
Paz, 28 Eki 2012 17:08:20 -0000
g.galashev Самое интересное решение мне показалось у Dayver.

Dayver, а нельзя ли с кодом это решение посмотреть?

]]>
Paz, 28 Eki 2012 08:43:28 -0000
Dayver Cmt, 27 Eki 2012 20:04:09 -0000 Macik

Added 3 minutes later:

А нельзя ли PHP._SERVER.HTTP_REFERER где-то сохранить при посещении первой страницы сайта, чтобы потом при отправки формы использовать? Вроде обычное программирование, но как реализовать, понять не могу.

Сохранять конечно можно. Например в Cookie. Вот такой скрипт прописывем например в footer.tpl:

	user_ref = '{PHP._SERVER.HTTP_REFERER}',
	this_host = '{PHP._SERVER.HTTP_HOST}',
	get_host = new RegExp("\/\/([^\/]+)"),
	ref = get_host.exec(user_ref );
	var ref_host = (ref && typeof(ref) == 'object') ? ref[1] : null;
	if (ref_host && ref_host != this_host ) {
		cookie.set('cot_ref',user_ref);
	}

Как только пользователь попадает на любую страницу - проверяем пришел ли он со стороннего ресурса и (если да) сохраняем referrer в куку «cot_ref».

Ну а далее можно использовать как хочешь. Например отсылать в форме.

Добавлено 8 минуты спустя:

Забыл - надо будет подключить какой-либо JS скрипт для работы с куками. Например этот https://github.com/js-coder/cookie.js

Просто вставить в header строку: <script type="text/javascript" src="https://www.cotonti.com/./js/cookie.min.js"></script>  (2Кб)

]]>
Cmt, 27 Eki 2012 19:39:12 -0000
Sergey http://bbclone.de/  у нас и плагин был для него в свое время.

]]>
Cmt, 27 Eki 2012 17:29:25 -0000
Moool13 g.galashev, поддерживаю, меня тоже интересует этот вопрос, помимо HTTP_REFERER

Добавлено 1 минуты спустя:

А нельзя ли PHP._SERVER.HTTP_REFERER где-то сохранить при посещении первой страницы сайта, чтобы потом при отправки формы использовать? Вроде обычное программирование, но как реализовать, понять не могу.

Теоретически можно в БД сохранять по ip (если гость, по id если юзер, но думаю про юзера не актуально в твоем случае), т.е. написать отдельный плагин.

]]>
Cmt, 27 Eki 2012 16:45:26 -0000
g.galashev Мне мало понять, откуда человек попал на форму обратной связи, мне нужно отследить по какому объявлению он зашёл и отправил данные с формы. Я так понимаю яндекс-метрика только отслеживает посещение определнной страницы, а не отправку формы со страницы.

Added 3 minutes later:

А нельзя ли PHP._SERVER.HTTP_REFERER где-то сохранить при посещении первой страницы сайта, чтобы потом при отправки формы использовать? Вроде обычное программирование, но как реализовать, понять не могу.

]]>
Cmt, 27 Eki 2012 16:41:53 -0000
Trustmaster <input type="hidden" name="referer" value="{PHP._SERVER.HTTP_REFERER}" />

Это сработает лишь в том случае, если человек попал непосредственно на форму обратной связи с другого сайта. В противном случае нужно то, что описал Edward.

]]>
Cmt, 27 Eki 2012 16:35:25 -0000
Edward Привет!

По моему проще установить какую-либо систему web-аналитики. На выбор: Google Analytics или Яндекс Метрика
Если это еще не сделано конечно.
Стандартного способа отправлять откуда пришел пользователь через форму обратной связи нет, или я плохо смотрел.
Варианта 2: писать в cookies с помощью движка (нужен хак), либо доработать плагин Who's online.

]]>
Cmt, 27 Eki 2012 15:58:59 -0000
g.galashev Здраствуйте.

У меня на сайте есть форма обратной связи, отсылается методом Post. Хотелось бы реализовать, чтобы ещё отсылался URL, с которого пользователь зашёл на мой сайт. Как это можно реализовать в Cotonti?

]]>
Cmt, 27 Eki 2012 13:21:43 -0000