]]>
]]>
Рейтинг@Mail.ru

Блокировка через сессию

Материал из Веб программирование.

Перейти к: навигация, поиск

Иногда требуется блокировать пользователя на сайте, после нескольких не удачных попыток. Данный пример реализован на сессии, что проще, чем реализации с базой данных, когда в ней хранятся попытки и ip посетителя. Но у сессии есть минусы, после закрытия браузера сессия пропадает. Если вы хотите блокировать пользователя на более длительный срок, то используйте куки и, если надо - базу данных на сервере.

$inactive = 3600;  //сколько секунд блокируем
$cblocktimes=12;  //число попыток, после 12 блокируем
 
$blockuser=0;    
if (!isset($_SESSION['blocktimes']))
{
  $_SESSION['blocktimes']=0;
}
 
 
if(isset($_SESSION['blockusertime']) and ($_SESSION['blocktimes']>12)) {
 
  $session_life = time() - $_SESSION['blockusertime'];
 
  if($session_life > $inactive){
    unset($_SESSION['blockusertime']);
    $_SESSION['blocktimes']=0;
    $blockuser=0;          
    //не даем
  }
  else
  {
    $blockuser=1; //блокируем
  }
}
 
 
  if ($blockuser==0)     {
  //например, если пользователь вводит что то не правильно
    if ($error==true)
    {
      $_SESSION['blockusertime']=time(); //время последней попытки
      $_SESSION['blocktimes']++;  //увеличиваем попытки пользователя
    }
 
  }
  else
  {
     echo 'Вы заблокированы!'; 
  }
]]>
Google+
]]>
Личные инструменты
Хочешь еще цитату? Опасайтесь программистов, носящих с собой отвертки!Леонард Брендвайн
веб-программирование
Просмотры
чтим

Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/webproger/data/www/webproger.ru/1c6a72389c0fd92079ac7ae7cd356173/sape.php on line 218 Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/webproger/data/www/webproger.ru/1c6a72389c0fd92079ac7ae7cd356173/sape.php on line 224

]]>
Rambler's Top100
]]>
]]>
]]>