Лимит пополнение баланса на сайте

271
15 июня 2017, 07:31

Здравствуйте.
Есть задача сделать на сайте вывод для пользователей определенное количество раз, допустим 50 раз в сутки и после этого вывод должен перестать работать, после истечения 24 часов опять все должно работать.
Вопрос такой, как этот механизм нужно реализовать, я имею ввиду сейчас не про то как это написать или примеры мне нужна суть самой идеи как такое обычно делаю.
Спасибо, надеюсь на вашу поддержку!

Answer 1

Это делается в несколько этапов:

База данных

В таблице с пользователями заводим отдельные колонки под лимиты вывода и время последнего обнуления. Например, limit_withdrawal и limit_updated.

Проверка на лимиты

В колонку limit_withdrawal записываем количество выводов после каждой операции вывода:

UPDATE users SET limit_withdrawal=limit_withdrawal+1 WHERE uid='$uid';

Перед выполнением операции проверяем эту же колонку на предмет того, чтобы она не была больше допустимого лимита (например, как указано выше 50).

Обнуление счетчика

Пишем метод, который раз в сутки обнуляет колонку limit_withdrawal и выставляет время последнего обнуления счетчика (используем timestamp).

За точку начала нового дня можно использовать время по UTC (более простой вариант, как на stackoverflow) или локальное время пользователя (более сложный в реализации, требует сравнивать текущую/ранее записанную дату с учетом временной зоны, но это более понятно и удобно для пользователя).

UPDATE users SET limit_withdrawal='0', limit_update='$ts' WHERE uid='$uid';

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

В качестве условия выполнения запроса определяем период больше 24 часов (рассчитываем разницу между текущим временем и временем последнего обновления колонки limit_update).

READ ALSO
Авторизация на токенах и регистрация

Авторизация на токенах и регистрация

Всё работаетПравильно ли я, использовал способ токен?

297
Помогите привязать товары к категориям Codeigniter

Помогите привязать товары к категориям Codeigniter

У меня есть категории меню , в этих категориях должны быть привязанные к категориям товарыТовары представлены в таблице Не могу реализовать...

294
$_POST запрос, суперглобальная перменная

$_POST запрос, суперглобальная перменная

Есть форма, которая отправляет данные , в экшен:

212
Удаление статьи с помощью токена

Удаление статьи с помощью токена

Работает, правильно ли сделал удаление статьи, с помощью токена?

198