Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помощь с банами
Форумы портала PHP.SU » » Вопросы новичков » Помощь с банами

Страниц (1): [1]
 

1. Kreks - 22 Ноября, 2011 - 20:08:38 - перейти к сообщению
есть таблица банов в ней ID BanTime BanEnd Banned=1
BanTime - дата начала бана
BanEnd - Дата конца бана.
Вопрос как сделать чтобы по окончанию срока в BanEnd бан обновлялся с 1 на 0

PHP:
скопировать код в буфер обмена
  1. mysql_query ("UPDATE bans SET banned='0' WHERE
  2. UNIX_TIMESTAMP() - UNIX_TIMESTAMP(bantime) >
  3. UNIX_TIMESTAMP() - UNIX_TIMESTAMP(banend)");


Запутался в запросе.Прошу помочь
2. OrmaJever - 22 Ноября, 2011 - 20:24:27 - перейти к сообщению
скрипт который проверяет всю таблицу на окончание бана повесить на cron.
3. Kreks - 22 Ноября, 2011 - 20:26:26 - перейти к сообщению
OrmaJever
Это понятно,но для начало надо как то сделать что бы работало!
4. OrmaJever - 22 Ноября, 2011 - 20:28:07 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. UNIX_TIMESTAMP() > UNIX_TIMESTAMP(bantime)

а с таким условием что не работает? Однако
5. Kreks - 22 Ноября, 2011 - 20:41:36 - перейти к сообщению
OrmaJever пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. UNIX_TIMESTAMP() > UNIX_TIMESTAMP(bantime)

а с таким условием что не работает? Однако


Нет так точно не работает,пробовал все. Баню пользователя,а после обновления странички он авто разбанивается.А если знак < то вообще никогда не разбанивается.Ну оно и логично собственно.Ищу способ как правильно оформить запрос чтобы шел отсчет от даты начала бана и когда доходил до даты окончания авто разбанивалось.
6. Bio man - 22 Ноября, 2011 - 21:58:50 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $sql = "UPDATE `bans` SET `banned`='0' WHERE `banend` <= ".time()

Kreks пишет:
отсчет от даты начала бана и когда доходил до даты окончания авто разбанивалось.
зачем? если "сейчас" > "окончание бана" то разбаниваем, зачем отсчеты вести? дата бана нужна только в информативных целях, имхо
(Добавление)
Kreks пишет:
UNIX_TIMESTAMP() - UNIX_TIMESTAMP(bantime) >
UNIX_TIMESTAMP() - UNIX_TIMESTAMP(banend)");
кек начало может быть больше конца? Однако
7. Itan - 23 Ноября, 2011 - 07:49:48 - перейти к сообщению
Можно и без крона, в принципе. При логине юзера на сайт проверять, чтобы время сейчас было больше, чем время окончания бана. Если true, то изменяем в бд на BanEnd = 0 и перезагружаем страницу.

 

Powered by ExBB FM 1.0 RC1