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]   

> Без описания
android
Отправлено: 13 Марта, 2012 - 20:51:28
Post Id


Посетитель


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


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




Привет.

Суть:
Человек нажал на кнопку к нему в сессию вписался указатель что забанен на 15мин.
При переходе на главную страницу, скрипт проверяет прошел ли бан? Да - очищаем сессию Нет - Блокируем доступ и ждем пока подойдет время для разбана...

Я сделал это все дело только с минутами, проблема в том что если человек зайдет через час в теже минуты то он будет ждать 15 мин...

Спасибо.
 
 Top
DlTA
Отправлено: 13 Марта, 2012 - 20:53:02
Post Id



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


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


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




android пишет:
нему в сессию вписался указатель что забанен на 15мин.

а как это записано?
 
 Top
LIME
Отправлено: 13 Марта, 2012 - 21:01:12
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




пишите в сессию таймстамп ...time()+900
 
 Top
DeepVarvar Супермодератор
Отправлено: 13 Марта, 2012 - 21:02:19
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $ban = false;
  2. $bantime = 900; // 15 min
  3. if (isset($_POST['knopka'])) $_SESSION['ban'] = time();
  4. if (isset($_SESSION['ban'])) {
  5.   $ban = ($_SESSION['ban']+$bantime < time()) false : true;
  6. }
  7.  
  8. if ($ban) echo "Забанен";
  9. else echo "Свободен";
 
 Top
Васенька
Отправлено: 13 Марта, 2012 - 21:59:13
Post Id


Гость


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


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




[quote=DeepVarvar][/quote]
не понимаю в этом куске if (isset($_POST['knopka'])) $_SESSION['ban'] = time();
какой переменной присваивается значение time?
 
 Top
android
Отправлено: 13 Марта, 2012 - 22:06:17
Post Id


Посетитель


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


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




Васенька при нажатии на кнопку допустим

CODE (html):
скопировать код в буфер обмена
  1. <form action="" method="post">
  2. <input type="submit" name="sbm" value="Ok" />
  3. </form>


Происходит запрос к условному оператору.
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['sbm'])) { //кнопка нажата, производим запись в сессию.
  2. //создаем сессию с именем ban
  3. $_SESSION['ban'] = time(); // присваиваем значение time()
  4. }


А что бы избавится от лишнего кода пишем в одной строчке без фигурных скобок:
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['sbm'])) $_SESSION['ban'] = time();

(Добавление)
Спасибо тем кто отписался в топике по теме. Держите + в карму Улыбка Более нечего не могу вам дать Огорчение
 
 Top
LIME
Отправлено: 13 Марта, 2012 - 22:19:48
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




$bantime лучше прибавлять 1 раз при записи
чем много раз при проверке
 
 Top
DeepVarvar Супермодератор
Отправлено: 13 Марта, 2012 - 22:54:49
Post Id



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


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


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




LIME пишет:
$bantime лучше прибавлять 1 раз при записи
В моем коде именно так.
android, а кроме кармы ничего и не нужно Закатив глазки
 
 Top
LIME
Отправлено: 13 Марта, 2012 - 23:13:53
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




PHP:
скопировать код в буфер обмена
  1. $ban = false;
  2. $bantime = 900; // 15 min
  3. if (isset($_POST['knopka'])) $_SESSION['ban'] = time()+$bantime;
  4. if (isset($_SESSION['ban'])) {
  5.   $ban = ($_SESSION['ban'] < time()) false : true;
  6. }
  7.  
  8. if ($ban) echo "Забанен";
  9. else echo "Свободен";
 
 Top
Васенька
Отправлено: 14 Марта, 2012 - 00:03:45
Post Id


Гость


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


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




спасибо
 
 Top
DeepVarvar Супермодератор
Отправлено: 14 Марта, 2012 - 00:28:45
Post Id



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


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


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




LIME, ах вот о чем ты... Согласен!
 
 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