2010-01-27 4 views
0

У меня есть сайт на PHP, который использует коды купонов. Я могу ограничить поисковые системы от поиска целевой страницы купонного кода (например, если это объявление было на другой странице).Как разрешить посетителям только определенные домены?

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

Поэтому, если я разместил объявление на www.examplead.com, и кто-то придет на наш сайт, нажав на объявление, я хочу разрешить код купона работать. Если они поступают с www.exampleblog.com или на любой другой сайт, отличный от www.examplead.com, я не хочу, чтобы код купона работал.

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

Если у кого-то есть лучший способ отслеживания скидочных купонов, сообщите мне.

ответ

2

Самый простой способ - проверить значение $_SERVER['HTTP_REFERER']. Он может быть подделан, но не требует от другой стороны ничего делать.

+0

Да, реферер - это в значительной степени единственный способ. Если вы публично помещаете что-то в Интернет (то есть не за логином), вы не сможете заставить людей не ссылаться на него. Проверка Referrer, по крайней мере, делает его непростым. –

1

Я также попробовал бы проверку на соответствие $_SERVER['HTTP_REFERER']. Если вам нужно что-то более надежное, я бы, возможно, создал партнерскую систему, где ключ передается через URL-адрес, который соответствует определенной партнерской учетной записи в вашей системе, поэтому вы можете узнать, какие филиалы выкупают коды. (и регистрацию имени домена реферера, чтобы вы могли обнаруживать подделки или если членские организации злоупотребляют своим кодом).

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

+0

Да, мы не используем учетные записи, все обрабатывается как гость. Но мы могли бы использовать cookie. – Jared

0

Вы можете создать динамический хеш, который изменяется ежедневно и добавляет его к ссылке на эту страницу. Если этот хэш отсутствует или неверен, вы можете не показывать код купона. Хэш может быть сгенерирован с использованием уникального идентификатора связующего сайта (соли) и динамического идентификатора, такого как дата (хотя, если время сервера отключено на какое-то время, это может быть проблематичным, поэтому я рекомендую альтернативное значение). Ежедневно изменяя это значение, вы запрещаете кому-либо передавать ссылку. В худшем случае это «в дикой природе» в течение 24 часов, прежде чем оно станет недействительным.

Чтобы увеличить эту систему, вы можете использовать $_SERVER['HTTP_REFERER'], но поскольку это ненадежно по причинам, указанным выше, вы не будете зависеть от этого.

+0

Это очень хорошая идея! Хотя сложно реализовать при использовании сторонних сайтов, верно? – Jared

+0

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

Смежные вопросы