Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сохранение UTM метки в URL при переходе по страницам сайта
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Сохранение UTM метки в URL при переходе по страницам сайта

Страниц (1): [1]
 

1. Sheneman - 24 Апреля, 2015 - 12:56:17 - перейти к сообщению
Доброго времени суток!
Помогите реализовать запись UTM метки в сессию и подстановку ее в URL при переходе по страницам.
Сейчас пользователь заходит на сайт с UTM меткой и при переходе с одной страницы на другую она обрубается! Нужно сделать что бы она вталялась в URL страницы на которую он переходит.
Нашел в просторах такой пример:
PHP:
скопировать код в буфер обмена
  1. <?
  2. $_SESSION['YandexDirect_UTM'] = $_GET['utm_content'];
  3. if (isset($_GET['utm_content'])) {
  4.     $_SESSION['utm_content'] = $_GET['utm_content'];
  5. }
  6. ?>


У меня он не работает.

поясню для чего это:

1. У меня установлен скрипт на сайте, который в зависимости от метки меняет контент. Когда пользователь переходит с одной страницы на другу, метка теряется и контент соотв. не подменяется.
2. Когда пользователь оставляет заявку, мне высылается письмо с контактными данными + весь URL ( $_SERVER['HTTP_REFERER'];) что бы понимать с какой страницы и с какой меткой был пользователь. Но если он перешел на другую страницу, я тереяю метку в заявке.
2. exlant - 24 Апреля, 2015 - 13:19:01 - перейти к сообщению
Пример дурацкий, зачем писать одну и туже инфу в две разных сессии, и в одну с проверкой, в другую без?
И этот пример не чего не меняет в url, он только пишет сессию!
Другими словами вот к этой переменной - $_SESSION['YandexDirect_UTM'] - вы можете обратиться на любой страничке вашего сайта!

Так что именно у вас не работает?
3. Sheneman - 24 Апреля, 2015 - 13:25:34 - перейти к сообщению
exlant, я думал этот скрипт будет подставлять UTM метку при переходе на другую страницу.
Подскажите плиз, как реализовать мою задачу. Что бы метка не пропадала при переходе по страницам сайта?
4. exlant - 24 Апреля, 2015 - 13:36:13 - перейти к сообщению
как вариант можно использовать сессию, только в url ее видно не будет, но обращаться к ней можно будет, и по ее содержимому уже выводить контент!

А если надо именно url поменять, то это или ручками нужно дописывать к url-ам, функцию добавления вашей метки!
Или же использовать функции буфера ob_*, и preg_match - ем, или же чем то другим, искать в вашем коде все ссылки и добавлять к ним уже метку!
5. Sheneman - 24 Апреля, 2015 - 14:00:34 - перейти к сообщению
exlant, скрипт ниже, меняет заголовок в соответсвие с UTM в URL
а как мне обратится к сесии в этом скрипте. Чтобы он брал UTM не из URL а из сессии.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $title = $_GET['utm_content'];
  3. if($title == '1') {$title_text = 'Заголовок1';}
  4. elseif($title == '2') {$title_text = 'Заголовок2';}
  5. else{$title_text = 'Заголовок 0';}
  6. ?>
6. exlant - 24 Апреля, 2015 - 14:38:13 - перейти к сообщению
в скрипте, который получил $_GET['utm_content']

PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_GET['utm_content'])) {
  3.     $_SESSION['utm_content'] = $_GET['utm_content'];
  4. }


в том, где подставлять контент:
PHP:
скопировать код в буфер обмена
  1.  
  2. $title = $_SESSION['utm_content'];
  3. if($title == '1') {$title_text = 'Заголовок1';}
  4. elseif($title == '2') {$title_text = 'Заголовок2';}
  5. else{$title_text = 'Заголовок 0';}


если все это в одном скрипте, то session_start(); - запускается один раз, и перед выводом любого html кода!! Иначе будет ошибка headers уже отправлены!
7. Sheneman - 24 Апреля, 2015 - 14:42:26 - перейти к сообщению
exlant, спасибо огромное!
8. Sheneman - 24 Апреля, 2015 - 17:03:33 - перейти к сообщению
exlant,
проблема такая теперь, установил скрипт на все страницы.
PHP:
скопировать код в буфер обмена
  1. <?
  2.  if (isset($_GET['utm_content'])) {
  3.     $_SESSION['utm_content'] = $_GET['utm_content'];
  4. }
  5. ?>
  6. <?
  7. $title = $_SESSION['utm_content'];
  8. if($title == '1') {$title_text = 'Заголовок1';}
  9. elseif($title == '2') {$title_text = 'Заголовок2';}
  10. else{$title_text = 'Заголовок 0';}
  11. ?>


При входе с меткой показывает заголовок ок, перехожу на след страницу все ок, перехожу на 3ю страницу и все, сессия теряется.
не важно в каком порядке я кликаю страницы всегда на 3м переходе показывается заголовок 0. Тоесть на 3м переходе сессия уже пустая.
В чем может быть проблема?
(Добавление)
exlant, сорри, разобрался сам)) Стоял дубль кода ниже.
Спасибо еще раз!



Все, мой кося, дублировал код. Спасибо!!!

 

Powered by ExBB FM 1.0 RC1