Создание сеанса от реферера - PullRequest
1 голос
/ 08 августа 2011

Справочная информация: У меня есть веб-сайт, который мы назовем AwesomeSite.com;он обрабатывает весь мой трафик.Кроме того, для целей маркетинга у меня есть второй домен, который мы назовем PromoForAwesomeSite.com;он перенаправляет весь трафик прямо на AwesomeSite.Оба сайта созданы с использованием PHP, MySQL и Apache.

Проблема : я хочу предоставлять пользователям различный контент в зависимости от того, как они пришли на мой сайт.В частности, я хочу показать рекламные объявления, если пользователь был перенаправлен с PromoForAwesomeSite.

Вопрос: Как я могу определить, что пользователь пришел с PromoForAwesomeSite и, таким образом, создать для него другое состояние сеанса?

ps Мне хорошо известны недостатки этого подхода, заключающиеся в том, что после удаления куки-файла сеанса промо-пользователи не могут видеть промо-контент, пока не посетят сайт перенаправления (маловероятно).К сожалению, с этим ничего не поделаешь.

Ответы [ 2 ]

3 голосов
/ 08 августа 2011

Вы можете использовать $_SERVER['HTTP_REFERER'] и посмотреть, содержит ли PromoForAwesomeSite.com в строке реферера. Например, что-то вроде этого:

session_start();

if(substr_count($_SERVER['HTTP_REFERER'] , 'PromoForAwesomeSite.com')){
    $_SESSION['from_promo'] = 1;
}

Поскольку рефереры могут быть заблокированы браузерами, вы можете рассмотреть возможность отправки GET-параметра в строке перенаправления с промо-сайта. Не знаю, как вы перенаправляете с вашего промо-сайта, но если вы используете PHP, вы можете сделать что-то вроде этого, если нет, вы поймете, что я имею в виду:)

HEADER('Location: http://AwesomeSite.com/index.php?from=promo');

Таким образом, вместо (или в дополнение к) проверке реферера вы также можете проверить эту строку и сохранить ее в сеансе.

1 голос
/ 08 августа 2011

В вашем случае реферер не будет включен, если вы сделаете автоматический редирект во время приземления. Таким образом, на вашем месте я бы справился с этим так:

1. PromoForAwesomeSite.com

header('Location: http://www.awesomesite.com/promo.php');

2. AwesomeSite.com

а. Создать promo.php страницу шлюза

б. На странице шлюза

setcookie('Promo', '1', time()+(5 * (24 * 3600))); // five days promotion cookie - adjust it
header('Location: http://www.awesomesite.com/index.php');

с. На index.php

if($_COOKIE['Promo']){
    // show promotion
}

Таким образом, вы также решите проблему с сеансом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...