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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помощь с банами

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Kreks
Отправлено: 22 Ноября, 2011 - 20:08:38
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Авг. 2011  
Откуда: Ульяновск


Помог: 0 раз(а)




есть таблица банов в ней 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)");


Запутался в запросе.Прошу помочь
 
 Top
OrmaJever Модератор
Отправлено: 22 Ноября, 2011 - 20:24:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




скрипт который проверяет всю таблицу на окончание бана повесить на cron.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Kreks
Отправлено: 22 Ноября, 2011 - 20:26:26
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Авг. 2011  
Откуда: Ульяновск


Помог: 0 раз(а)




OrmaJever
Это понятно,но для начало надо как то сделать что бы работало!

(Отредактировано автором: 22 Ноября, 2011 - 20:26:51)

 
 Top
OrmaJever Модератор
Отправлено: 22 Ноября, 2011 - 20:28:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. UNIX_TIMESTAMP() > UNIX_TIMESTAMP(bantime)

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


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Kreks
Отправлено: 22 Ноября, 2011 - 20:41:36
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Авг. 2011  
Откуда: Ульяновск


Помог: 0 раз(а)




OrmaJever пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. UNIX_TIMESTAMP() > UNIX_TIMESTAMP(bantime)

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


Нет так точно не работает,пробовал все. Баню пользователя,а после обновления странички он авто разбанивается.А если знак < то вообще никогда не разбанивается.Ну оно и логично собственно.Ищу способ как правильно оформить запрос чтобы шел отсчет от даты начала бана и когда доходил до даты окончания авто разбанивалось.
 
 Top
Bio man
Отправлено: 22 Ноября, 2011 - 21:58:50
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




PHP:
скопировать код в буфер обмена
  1. $sql = "UPDATE `bans` SET `banned`='0' WHERE `banend` <= ".time()

Kreks пишет:
отсчет от даты начала бана и когда доходил до даты окончания авто разбанивалось.
зачем? если "сейчас" > "окончание бана" то разбаниваем, зачем отсчеты вести? дата бана нужна только в информативных целях, имхо
(Добавление)
Kreks пишет:
UNIX_TIMESTAMP() - UNIX_TIMESTAMP(bantime) >
UNIX_TIMESTAMP() - UNIX_TIMESTAMP(banend)");
кек начало может быть больше конца? Однако
 
 Top
Itan
Отправлено: 23 Ноября, 2011 - 07:49:48
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Можно и без крона, в принципе. При логине юзера на сайт проверять, чтобы время сейчас было больше, чем время окончания бана. Если true, то изменяем в бд на BanEnd = 0 и перезагружаем страницу.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB