Отправляем форму вместе с рефером зашедшего пользователя

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

Итак, логика примерно следующая:

  1. Считываем рефер пользователя
  2. Сохраняем в куки
  3. Считываем куку в скрытый инпут формы
  4. Отправляем вместе с формой

В самый верх, желательно еще до открытия html тэгов пишем:

if(isset($_SERVER["HTTP_REFERER"]))
{
    $refer = $_SERVER["HTTP_REFERER"];
    if ($_COOKIE['visited']==false) {
        setcookie('refer',$refer,time()+60*60*24);
        setcookie('visited',true,time()+60*60*24);
    }
}

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

Далее, к уже существующей форме добавляем скрытый input:

<input type="hidden" name="reference" value="<?php if(isset($_COOKIE['refer'])) { echo($_COOKIE['refer']); } else { echo $refer; }?>" />

В самом инпуте скорее всего интересного ничего нет, возможно только его тип — hidden, основное для нас находится в значении value, здесь мы проверяем существование куки и если есть считываем ее, если нет, то возвращаем переменную $refer.

Остается только при отправке формы считать значение из value и отправить его. Кстати для декодирования и более понятного url можно написать:

$reference = $_POST['reference'];
$referencedecode = urldecode($reference);

И в переменной $referencedecode у нас будет декодированный url. Пожалуй остается добавить еще небольшое регулярное выражение для «вытаскивания» поисковой фразы из рефера яндекса:

preg_match('"text=(.*?)[^&]*"', $refer, $text);
$yandextextrefer = substr($text[0], 5);
comments powered by HyperComments
При копировании материалов обратная ссылка на play-stop.ru желательна обязательна!