[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ограничение для юзера по времени и кол-ву
alerzo
Здравствуйте! Есть необходимость задать ограничения для юзера по кол-ву создания определенного вида шаблонов (не суть, это не важно). Есть задача
1) ограничить возможность создания по времени (т.е. через таймаут какой-то)
2) общее кол-во в сутки

Уже есть 2 переменные добавленные каждому юзеру

$limit_users_id - кол-во настроек разрешенное в сутки
$limit_users_time - интервал между добавлениями настроек


Никак не могу допереть, какую логику нужно сделать и какие еще переменные потребуются чтобы это реализовать максимально просто и работоспособно! Подскажите максимально простую
Каждый день общее кол-во (2) должно вновь вступать в силу..т.е. если разрешено 2 раза в сутки, то по истечению этого времени вновь разрешать. Варианты с cookies не интересны!
Arh
Сохранять в базу дату последнего создания и количество созданий за день.
С помощью даты уже определять интервал и было ли последнее создание вчера (или сколько там дней назад), если да, то обнулять счётчик, создавать шаблон, прибавлять счётчик, сохранять дату последнего создания и так по кругу =)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
alerzo
С таймаутом ожидания разобарался, сделал ограничение чтобы после создания шаблона записывалось в базу время последнего обращения..и при каждом заходе проверяю время,

если оно есть, то сравниваю с лимитом =>делаю то-то

если его нет - записываю и =>делаю то-то и так по кругу..

Но не совсем понятна логика по кол-ву шт? можете на пальцах объяснить или примером тип

если () {тут то-то} и тп..

в данный момент есть переменная кол-ва шт только.. у конкретного юзера и даты time() последнего создания шаблона..
Arh
alerzo
Цитата
если () {тут то-то} и тп..


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

SELECT COUNT(`date`) as 'count' FROM `template` WHERE `user_id` = 1 AND `date` >= CURDATE()



$user = 1;
$result = $db->query("SELECT COUNT(`date`) as 'count' FROM `template` WHERE `user_id` = " . (int)$user . " AND `date` >= CURDATE()")->fetch();
if ($result['count'] < 2) {
//ещё по одной
} else {
//больше не наливать
}


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.