Автоматические таймеры

Статус
В этой теме нельзя размещать новые ответы.

Ahelhot

Новичок
Хочу сделать некую "накопительную систему", и столкнулся с одной трудностью:

Мне надо что бы каждые 3 дня, у юзеров автоматически уменьшалась переменная points из базы (mysql).
Но как сделать это, что-бы самому юзеру не надо было заходить на сайт? (или можно проверять по дате каждый раз когда любой юзер обновит страницу?)
 

Sokil.Dmytro

Новичок
еще как вариант можно получать дату последнего апдейта и на основании этого пересчитывать значение. Например шесть дней назад значение дыло 8, за шесть дней должно уменьшиться на два, значит апдейтим в базу число 6, но реальность реализации зависит от вашей конкретной задачи
 

Ahelhot

Новичок
Почитал про крон, но мало что понял ;)

А сделать я хочу следуюшие:
Система варнингов (замечаний), работает по накопительной системе. Т.е модератор может добавить несколько пунктов к текущему количеству пользователя, при достижении 10 юзер блокируется до тех пор, пока пункты не опустятся ниже критической отметки.. А сами пункты автоматически уменьшаются на 1 (через 3 дня, после получения).
 

Ahelhot

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

Кстати может кто нибудь даст ссылку на пример системы замечаний. Я посмотрел как сделано на форумных движках (punbb), но там работает по другому (просто блокирует до определенного времени)..
 

tz-lom

Продвинутый новичок
Ahelhot
а вот если крон каждый день запускать и проверять даты ?
 

Raziel[SD]

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

Ahelhot

Новичок
Ну так он будет уменьшать когда пользователь зашел на сайт.

Т.е допустим заходит "Вася", у которого было 10 пунктов (лимит), мы можем проверить по дате получения пункта из базы (и если это больше > 3, то снять блокировку)..
Но проблема в том, что я хочу сделать статус "заблокирован", и он должен сниматься в не зависимости от - зашел "Вася" на форум, или нет.

Можно проверять статус всех пользователей на сайте, при любом переходе на любую страницу, любым пользователем. Это конечно решит проблему, но не будет ли слишком большого количества ненужных запросов?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
тебе уже сказали - по крону запускать скрипт каждый день и вычитать только у тех, у кого надо именно сегодня

не понимаешь - вернись в школу и выучи уроки информатики 10го класса, учить лентяев вычитанию и делению желающих немного
 

Ahelhot

Новичок
Да ну?
А если бан на один час?
Что запускать каждый час? )

// при ответе "да", скажу тоже но "Если бан на 5 минут".
Видел на некоторых сайтах похожее, но там бан снимается "секунда в секунду". Т.е явно не раз в день.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
да, блин, cron выполняется раз в минуту (сюрприз!)

закройте plz тему ради ограничения объема идиотизма на форуме, ТС безнадежен, щас еще добрые прохожие подключатся с хорошими идеями
 

Ahelhot

Новичок
Ок, послушаю более опытного )
Я просто про крон узнал только сегодня, в принципе проверки "раз в пол дня" мне хватит.

Спасибо за ответы.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху