Создание регистрации по инвайтам.

Hixon10
На сайте с 21.08.2010
Offline
125
1730

Добрый день. Есть ли уже какой-то готовый каркас регистрации по инвайтам? Или лучше написать свою, т.к. ничего стоящего в сети нет? Хочу, чтобы у пользователя сразу было Х инвайтов, которые отнимаются, если по ним зарегистрировался человек. Думаю, что лучше самому сделать, т.к. там ещё несколько плюшек нужно: это и ограничение на количество аккаунтов с 1 ip, это и увлечение количества инвайтов при увлечение левела пользователя, это и что-то другое.

Если бы вы писали регистрацию по инвайтам, то какой бы алгоритм генерировании инвайтов бы использовали? Я пока думаю, что придумать алгоритм генерации цифр, на пользователя генерировать 2*X цифр, создавать md5 от этих цифр, т.е. брать 2 цифры, брать их мд5 по 16 символов и склеивать. Может быть, есть что-то лучше?

Спасибо.

Веду свой невзрачный блог (http://hixon.ru/).
S
На сайте с 23.05.2004
Offline
315
#1

сами коды инвайтов в отдельной таблице, со статусом 1/-1 , т.е. занят или нет и id юзеров, кто приглашал и кто бы создан по инвайту.

Остальное, защита он накруток и прочего - уже делать по желанию.

$invite_id = md5(uniqid());

В таблице поле invite_id делаем уникальным, т.е. одинаковый инвайт туда запихнуть не получиться. Или вообще как первичный ключ.

Это просто подпись.
weldpua2008
На сайте с 29.08.2010
Offline
111
#2
Hixon10:
Добрый день. Есть ли уже какой-то готовый каркас регистрации по инвайтам? Или лучше написать свою, т.к. ничего стоящего в сети нет? Хочу, чтобы у пользователя сразу было Х инвайтов, которые отнимаются, если по ним зарегистрировался человек.

Готовое вы не интегрируете, либо сложно будет - легче написать)))

Думаю, что лучше самому сделать, т.к. там ещё несколько плюшек нужно: это и ограничение на количество аккаунтов с 1 ip, это и увлечение количества инвайтов при увлечение левела пользователя, это и что-то другое.

На действие "регистрация пользователя" добавить action "создание инвайта(ов)".

На действие "level up" добавить action "увеличение количества инвайта(ов)".

Один из вариантов:

Я бы создал таблицу: invates с 3-мя полями: invite - ключ (сам код инвайта - лучше цифровой), uid_user (ид пользователя, который приглашает), uid_invited_user (ид пользователя, который ввел инвайт).

В этом случае Мы наполняем таблицу записями для пользователя с его инвайтами, когда кто-то вводит инвайт Мы вносим в uid_invited_user ид нового пользователя - всё, больше инвайтом пользоваться никто не может.

Минусы:

*Если у Вас 100 000 пользователей * 5 инвайтов, да плюс 5 инвайтов на уровень = 1мульйон записей, что заставит базу пыхтеть

Обход:

*Удалять уже выданные

*Выдавать инвайты по требованию, но тогда надо знать как рассчитываются инвайты (максимальное количество) и в одной из таблиц хранить оставшееся количество (но не обязательно)

Плюсы:

Легко внедрить и при правильном использовании можно не париться

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий