В настоящее время я работаю над созданием скрипта отслеживания переходов пользователей на PHP, MySql. Согласно плану, любому пользователю, который завершит регистрацию, будет предоставлена ​​реферальная ссылка, а также он сможет поделиться информацией о моем приложении в Facebook и Twitter.

Теперь, до тех пор, пока этот пользователь не привлечет на мой сайт еще как минимум 5 пользователей, ему не будет разрешено просматривать домашнюю страницу.

Как теперь отследить количество привлеченных этим пользователем лиц?

1. Если я использую $ _HTTP_REFERRER - в этом случае я могу получить ссылку, откуда пользователь перешел на мою страницу. Если это моя реферальная ссылка, я могу обновить запись в базе данных для этого пользователя и количество привлеченных лиц +1. Но насколько надежен $ _HTTP_REFERRER?

2. Если я использую для отслеживания с помощью файлов cookie: здесь я немного не понимаю, нужно ли мне устанавливать файлы cookie для каждого браузера или существует какой-либо метод настройки файлов cookie, не зависящий от браузера? Во время настройки файла cookie, как мне его сохранить, я имею в виду, следует ли использовать только идентификатор реферала или следует использовать комбинацию идентификатора реферала и site_id (или любую другую комбинацию).

Кроме того, я должен сохранить реферальную информацию в базе данных. Какой должна быть идеальная схема таблицы для этой таблицы. Я запланировал что-то вроде: (user_id, user_name, no_of_referrals, refer_by).

3
deGee 29 Авг 2011 в 18:13

2 ответа

Лучший ответ

Чтобы получить реферер, вы хотите использовать $_SERVER['HTTP_REFERER']. Почти все браузеры отправляют реферера, но это не обязательно. Поскольку это клиентская вещь, пользователь может легко ее изменить.

Большинство сайтов, которые я видел, которые используют подобные вещи, используют переменную в URL-адресе для отслеживания исходного сайта. Что-то вроде этого:

http://www.yoursite.com/someresource?originaccount=12345678

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

5
Brad 29 Авг 2011 в 14:17

Поскольку у $_SERVER['HTTP_REFERER'] есть некоторые проблемы (некоторые браузеры, например, IE в какой-то версии), вы не можете полагаться на это, особенно в отношении функции счетчика ссылок, как на универсальный метод. Распространенной альтернативой для этого является отправка идентификатора реферала через URL-адрес, чтобы вы могли проверить реферал с помощью $ _GET. Но по соображениям безопасности вы можете рассмотреть возможность использования зашифрованного идентификатора в своем URL-адресе (ref: Mcrypt) вместо того, чтобы отправить его в обычном виде.

0
toopay 29 Авг 2011 в 14:30