Чтобы создать некоторую простую аналитику для нашего сайта - я пытаюсь захватить источник, откуда пользователь приземляется на нашей странице, и если он заканчивает регистрацию - храните источник в базе данных.Плагин Zend для захвата реферера для каждого посетителя
Поскольку этот код должен быть на всех страницах - я думал о добавлении его к layout.phtml Это то, что я до сих пор (только черновик)
$ref_cookie = $_COOKIE["xyzcom-referrer"]; if(!Zend_Auth::getInstance()->hasIdentity() && $ref_cookie==null) { $ref=null; $ref=$_GET['ref']; if($ref==null || strlen($ref)==0) $ref= $_SERVER["HTTP_REFERER"]; //set in cookie incase user returns later and registers setcookie("xyzcom-referrer",$ref); }
Его довольно понятны - если пользователь не вошел в систему - я пытаюсь получить реферер либо через параметр ref, либо через HTTP_REFERRER. Причина, по которой я храню его в cookie, - это пользователь, который может посетить сайт сегодня, но зарегистрироваться через неделю.
Поэтому каждый раз, когда пользователь регистрируется, я увижу, установлен ли этот файл cookie - если он есть - я получу значение и вставляю его в базу данных в качестве источника ссылки.
Это лучший способ приблизиться к этому. Или я должен писать как плагин контроллера - если да, то как мне это поделать. Спасибо за ваши советы.
Thanks Tim - Что касается 1 - в действительности нет ничего, что мы можем сделать правильно - я имею в виду, что я заметил, что даже gmail удаляет эти заголовки, когда вы нажимаете на какие-либо ссылки внутри почты. И да, я исправлю функцию setcookie - я просто написал это как быстрый проект. – Gublooo
Yup, просто используйте 'isset()', чтобы проверить, есть ли заголовок referrer перед настройкой файла cookie, и все это хорошо. –
Спасибо за советы - оцените. – Gublooo