За последние 24 часа нас посетили 41849 программистов и 1662 робота. Сейчас ищут 1092 программиста ...

Создания условия

Тема в разделе "PHP для новичков", создана пользователем Sindicat, 10 фев 2009.

  1. Sindicat

    Sindicat Активный пользователь

    С нами с:
    10 фев 2009
    Сообщения:
    46
    Симпатии:
    0
    Здраствуйте, у меня есть проверка:
    if(!preg_match("|^[\d]+$|", $item_id))
    exit("Hacking attempt");

    при вводе всяких левых символов выводит сообщение "Hacking attempt", как мне создать ещё одно условие, которое будет проверять, сколько раз пользователю вывелось это сообщение, если больше двух, на третий будет блокировать эго на 15 минут с выводом другого сообщения, например: "Вас заблокировали на 15 минут...." За ранние спасибо !
     
  2. VItalijs

    VItalijs Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    244
    Симпатии:
    0
    Адрес:
    Рига, Латвия
    вносить данные в сессию, либо в базу.
     
  3. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    сохраняй куда-нибудь, например в сессию.
     
  4. alexeurodnepr

    alexeurodnepr Активный пользователь

    С нами с:
    18 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    в мануале надыбал подобное для тебя...

    PHP:
    1.  
    2. <?php
    3. $tmp = $_GET['tmp'];
    4. $try = 3; // Число проб
    5.  
    6. if(!isset($_SESSION['count']))
    7. {
    8.     $_SESSION['count'] = 0;
    9. }
    10. if($_SESSION['count']==$try )
    11. {
    12.     echo $_SERVER['REMOTE_ADDR'];
    13.     unset ($_SESSION['count']);
    14.     // а дальше или в базу... или в плоские файлы... или на тот свет...)
    15. } else {  
    16.     if(!preg_match("|^[\d]+$|", $tmp))
    17.     {
    18.         $_SESSION['count']++;
    19.         echo "Hacking attempt";
    20.     }
    21. }
    22. ?>
    23.  
     
  5. Sindicat

    Sindicat Активный пользователь

    С нами с:
    10 фев 2009
    Сообщения:
    46
    Симпатии:
    0
    Спасибо ребята за быстрий ответ !!
    А ещё как мне сделать время блокировки 15 мин ? я новенький в этом дели, помогите...
     
  6. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    Вообще по уму для этого лучше б базею использовать, где хранить попытки логинов с айпи адресов.
    все остальные способы типа кукисов бесполезны.
     
  7. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    сохранять время.
    САМ.
     
  8. VItalijs

    VItalijs Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    244
    Симпатии:
    0
    Адрес:
    Рига, Латвия
    брать ip и время, писать в базу, потом проверять есть ли такой ip, если есть то сколько времени прошло.
     
  9. Sindicat

    Sindicat Активный пользователь

    С нами с:
    10 фев 2009
    Сообщения:
    46
    Симпатии:
    0
    а можна какойта пример привести как это все делается ? или дайте ссылку почитать.
     
  10. Sindicat

    Sindicat Активный пользователь

    С нами с:
    10 фев 2009
    Сообщения:
    46
    Симпатии:
    0
    кстати да ! если кто -то отключит куки, через сесию не получится сделать (
     
  11. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Интересное утверждение.......
    С чего сей вывод?
     
  12. Sindicat

    Sindicat Активный пользователь

    С нами с:
    10 фев 2009
    Сообщения:
    46
    Симпатии:
    0
    ну как сессия просто не будет приниматся пользавателем, и не сможет определить сколько раз он обновил страницу.
     
  13. alexeurodnepr

    alexeurodnepr Активный пользователь

    С нами с:
    18 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    куки сохраняются на компе у пользователя и могут работать как в текущем сеансе и при последующих обращениях...
    а сессия создается только на 1 сеанс т.е. это две друг от друга не зависимые функции
     
  14. Sindicat

    Sindicat Активный пользователь

    С нами с:
    10 фев 2009
    Сообщения:
    46
    Симпатии:
    0
    почему тогда когда я отключаю кукексы, ничего не работает ?
    PHP:
    1.  
    2. <?php
    3.  $item_id = $_GET['item_id'];
    4.  $try = 3; // Число проб
    5.  
    6.  if(!isset($_SESSION['count']))
    7.  {
    8.      $_SESSION['count'] = 0;
    9.  }
    10.  if($_SESSION['count']==$try )
    11.  {
    12.      echo $_SERVER['REMOTE_ADDR'];
    13.      session_destroy();
    14.      unset ($_SESSION['count']);
    15.    
    16.  } else {  
    17.      if(!preg_match("|^[\d]+$|", $item_id))
    18.      {
    19.          $_SESSION['count']++;
    20.          echo "Hacking attempt";
    21.      }
    22.  }
    23.  ?>
    24.