Реферальная система на php
Создаем реферальную программу для сайт
Создание реферальных на PHP для сайта. Теория и рабочий пример
Al-Sher «>2016-06-06 20:20:21
Сегодня я решил поделиться статьей на тему партнерской программы и реферальных ссылок на PHP. Начнем с главного, а именно с вопроса: Что такое реферальные ссылки и для чего их используют на сайте?
Вопрос, конечно, актуальный для немногих, но, всё же, если начинать рассказывать, то с самого начала. И так, что же это такое? На данный вопрос даже википедия может ответить и вот цитата:
Реферальная ссылка — это идентификационная ссылка предназначенная для привлечения рефералов для конкретного пользователя (реферера).
Судя из этой цитаты, реферальная ссылка предназначена для привлечения новых клиентов. Данный вид партнерской программы очень популярный и используется во многих сервисах, например Dropbox и reg.ru, поэтому и вам я рекомендую вам использовать такой вид поощрения ваших пользователей.
Давайте подумаем о том, что нам необходимо для этого. Итак, для начала нам надо добавить в таблицу пользователей 2 поля. Конечно намного лучше реализовать свою таблицу для реф. ссылок, так как это, в теории, должно увеличить скорость подсчета рефералов, но мы же делаем что-то простое. Вот SQL-код, который буду использовать я для нашего примера
Тут мы создаем таблицу user с полями id(индификатор пользователя), name(Имя пользователя), email(Email пользователя), referral(Реферальная ссылка пользователя), owner(Чьим рефералом является пользователь).
На этом теоретическую часть можно заканчивать и начинать «творить» код. Давайте начнем с генерации уникального кода, то есть реферальной ссылки. Конечно я сразу же выложу готовый код, который будет генерировать ссылку, пользуясь данными email:
Это является самой простой функцией для реализации уникального ключа, но он будет уникальным лишь при условии уникальности email-адреса в БД.
Как добавлять данные в таблицу я думаю описывать не стоит, поэтому перейдем к реализации страницы, обрабатывающей данные коды. Назовем нашу страницу ref.php и положим её в корень, то есть адрес должен получиться следующим: http://domen.ru/ref.php. На этой же странице мы делаем проверку на наличие кода, если он отсутствует, то сразу «редиректим» пользователя на главную сайта.
Мы используем переменную r для передачи нашего кода. Раз мы используем md5 хеш для генерации ссылки, то можно сразу проверить и длину кода, ведь если верить документациям md5 занимает 128 бит, но, так как мы получаем сами символы, его вес увеличивается до 256 бит и занимает 32 символа.
И так, самые простые проверки мы реализовали, поэтому остались лишь проверки данных в БД. Надеюсь все уже знакомы с mysqli и его описание здесь не требуется. Давайте соединимся с нашей БД.
Тут я сразу указал кодировку utf-8, так как считаю это важной частью. Она способна избавить от лишних поисков проблем с кодировкой, что сохранит вам время. Вернемся к проверкам в ref.php. Следующей проверкой нам необходимо узнать, есть ли такой код в БД. Давайте узнаем это:
Осталось лишь дополнить регистрацию новых пользователей. Так как процесс регистрации на каждом сайте проходит по своему, дать универсальный код у меня нет возможности, но я готов предложить набросок с проверкой наличия ref куки.
Пользователь, зашедший без реферальной ссылки, должен получить owner=0, то есть не является рефералом.
Кстати, для скрытия реферальных ссылок люди используют сервисы коротких ссылок, как, например, наш сервис ur0.ru.
Вот такая небольшая статья вышла, но из неё можно реализовать настоящую реферальную систему! Спасибо за внимание и удачи в вашем творчестве
8 комментариев
Al-Sher 2021-08-19 22:03:02
Почтовый адрес для связи указан на странице «Контакты». К сожалению времени свободного очень мало, поэтому не уверен, что смогу своевременно помочь
Алексей 2021-08-11 14:51:57
Понятно. Там же id ауто инкремент стоит. Автоматически айди присваивается следущий номер. А подскажите как с вами можно связаться проконсультироваться по реф программе? Можно и платно.
Al-Sher 2021-07-19 20:30:33
Реферальная программа для своего сайта на PHP
Здравствуйте. С целью привлечь больше людей на свой сайт, было решено ввести новшества на сайте, одной из которых является реферальная программа. Сайт написан на языке php, об этом языке отзываются, как о легкоусвояемым для новичков, однако, для меня это ещё тёмный лес, мой уровень знаний языка очень низок.
Я понимаю, что за меня ни кто не выполнит мою работу, по этому, прошу просто объяснить, как можно сделать простенькую партнёрскую программу для сайта? Я буду признателен за оказанную помощь.
Заранее большое спасибо.
Реферальная ссылка содержит уникальный ключ, который привязан к какому то пользователю, в качестве ключа можно использовать идентификатор пользователя (владельца реф. ссылки). Как я себе представляю систему рефералов: при переходе на сайт, проверяется наличие определенного параметра в URL, например, » ref «, если параметр присутствует, система получает его значение и добавляет в сессию или в куку. Далее при регистрации пользователя, опять же, проверяется наличие параметра, уже в куки | сессии, если есть, заносится идентификатор пригласившего. Таким образом, пользователь становится рефералом.
Что тут может потребоваться? Думаю, первым делом, необходимо разобраться с URL, то есть реф. ссылкой. Тут приходит на помощь GET запрос (Передача переменных методом GET ($_GET в PHP)). Например, реф. ссылка выглядит так:
Вот, собственно все. Конечно, надо учитывать, что пользователь может подменить идентификатор в реф. ссылки, на что то другое или выкинуть, что то еще, тут необходимо проводить дополнительные проверки, чтобы, как то обезопасить свой сайт, но это уже другой вопрос.
Реализация Реферальных Ссылок
или если есть статью на существующую
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Реализация сервиса сокращения ссылок
Хочу для внутренних нужд сделать сервис по сокращению ссылок. Дело в том, что клиентам приходится.
Реализация ссылок с передачей параметров
Я хотел бы спросить как реальзуются ссылки id.php?id=1 в php, найти в интернете не могу Можно.
ЧПУ реализация или почему не работает такой вид ссылок
реализация через htaccess /// Изначально ссылка вот такого типа: http://site.php/?page=edit Хочу.
Добавлено через 23 часа 58 минут
Как делали вы?
И что бы стоило изменить мне?
Я не вижу здесь реализации реф. ссылок, похоже это просто сохранение ссылки в бд. Я кстати не вижу никакого смысла хранить ее в бд, лучше ее генерировать при необходимости.
В бд вам надо хранить не ссылку, а user_id наставника(человека, который пригласил пользователя в систему).
tarasalk, Я не правлиьно выразился, я начал реализацию, и этот код только добавление ссылки в БД Если пользователь залогенился впервые
Добавлено через 59 секунд
tarasalk, Никаких фраемворков
Добавлено через 48 секунд
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Спарсить: 12 ссылок на изображении товаров, 12 ссылок на товары, 12 цен товаров (html dom)
Начал учится парсить (с php_html_dom), но не могу вникнуть в процесс (как это работает?). Помогите.
Реализация вектора ссылок
Доброго времени суток, дорогие форумчане! Проблема в следующем: мне дано было задание сделать игру.
Реферальная система для Joomla
Реферальная система (или Партнерская программа) позволяет привлекать на сайт дополнительный трафик и покупателей за счет системы рекомендаций. В ряде случаев, добавление партнерской программы в магазин позволяет существенно увеличить доходы от продаж.
Вы можете заказать разработку и внедрение реферальной системы на Ваш сайт. Либо воспользоваться одним из готовых решений ниже.
Партнерская программа для магазина детских товаров (Joomla 3.9 + JoomShopping)
Для интернет-магазина детских товаров Little Leo (Joomla 3.9 + JoomShopping 4) разработан компонент партнерской программы.
Особенности партнерской программы:
Многоуровневая партнёрская программа для Joomshopping
Партнёрская программа для магазина игровых валют
Партнёрская программа Virtuemart. Joomla 1.5.23
Для магазина mirpodarkoff.ru ( Joomla 1.5 + Virtuemart 1.1.9 ) создан компонент «Партнёрская программа. Virtuemart«.
Регистрация пользователей осуществляется средствами Virtuemart.
3-х уровневая реферальная система Joomla для мини-магазина
Для мини-магазина peeg.ru создана 3-х уровневая реферальная система. Сайт создан на базе CMS Joomla 1.5
Личный кабинет на Joomla + Партнёрская программа для сайта трейдеров Forex
Разработан личный кабинет для финансового сайта на Joomla. Компонент включает в себя также партнёрскую программу (реферальную систему).
Сайт для Oriflame на Joomla 1.5 + партнёрская программа
Партнёрская программа с личным кабинетом на Joomla 1.5
Для сайта трейдерской компании protrade-fx.com был разработан компонент реферальной системы (партнёрской программы)+ личный кабинет на Joomla 1.5. Во время регистрации пользователь выбирает тип аккаунта ( Партнёр или Инвестор ). Партнёры получают реферальную ссылку и могут привлекать Инвесторов.
У партнёров в личном кабинете отображается список привлечённых инвесторов и статистика переходов по партнёрской ссылке за последний месяц.
Реферальная система для вэб-студии
Для сайта вэб-студии была разработана 2-х уровневая реферальная система. при регистрации пользователь получает свою реф.ссылку; идет отслеживание посетителей, т.е. по какой рефер. ссылке пришел заказчик, и привязка данных при регистрации заказчика; (т.е указание его реферера) простая статистика с доступом для админа и рефералов
Реферальная система для магазина на VirtueMart
Реферальная система для Joomla 1.5
Разработана и внедрена одноуровневая реферальная система на Joomla 1.5. Реферер получает 10% от заработка своих рефералов.
Разработана система трекинга регистраций на PTC (кликовые спонсоры).
Помогите с реферальной системой (начисление очков)
Код несколько труден для восприятия поэтому готового решения не напишу, но ИМХО как вариант можно сделать так:
1. Создать табличку наподобии:
[sql]
CREATE TABLE `usr_ref_add`(
`id` INT NOT NULL AUTO_INCREMENT,
`master_uid` INT NOT NULL,
`ref_uid` INT NOT NULL,
`date_register` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY(`id`),
UNIQUE(`master_uid`, `ref_uid`)
);
[/sql]
и вместо
добавлять запись в эту табличку.
Затем, отыскать файл отвечающий за перемещение в другую группу и туда добавить выбор записи из этой таблицы:
[sql]
SELECT `master_uid`
FROM `usr_ref_add`
WHERE `ref_uid`=?i
[/sql]
ну и если запись есть начислять тому пользователю id которого живет в master_uid бонусные баллы, а затем запись из этой таблички удалять во избежании повторного зачисления.
P.S.
Ну или как вариант можно конешн добавить в таблицу пользователей поле, и туда записывать id пригласившего, а после начисления баллов удалять, но мне этот вариант не очень нравится.
P.P.S. в табличку `usr_ref_add` можно, по вкусу, добавить поле `completed` и прописывать там 1 вместо удаления записи, дабы оставались данные для статистики.
Оффтоп 2:
Подписи вернулись? Давненько я тут не был. Спасибо!