Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]blokada czasowa po błędnych logowaniach
Forum PHP.pl > Forum > Przedszkole
artekp999
Chce wstawić do poniższego skryptu blokadę czasową (wiem jak to zrobic nie w tym problem) mój problem porusza inną rzecz. Otóz gdy ktoś wpisze 3 razy zle hasło to wyskakuje mu komunikat ze jego konto zostało zablokowane na 15 min. Ale użytkownik dalej może wpisywać rózne hasła a w tabeli rośnie liczba błędnych logowań. Co zmienic aby zatrzymała się na 3 i dalej nie rosła a logowanie nie było możliwe.


  1. <?php include("glowne/gora.php");
  2. include("polacz.php");
  3.  
  4. $login = $_POST['login'];
  5. $login = addslashes($login);
  6. $login = htmlspecialchars($login);
  7.  
  8. $query = mysql_query("select * from uzytkownicy WHERE `nick`='$login'");
  9. while($rekord = mysql_fetch_array($query))
  10.  
  11. $proby = "$rekord[13]";
  12.  
  13. if($proby >= 3)
  14. {
  15. echo '<center><h2>Twój dostęp do logowania został zablokowany na 15 min za wpisanie trzykrotnie złego hasła</h2></center><p>';
  16. }
  17. else
  18.  
  19. $login = $_POST['login'];
  20. $haslo = $_POST['haslo'];
  21. $haslo = addslashes($haslo);
  22. $login = addslashes($login);
  23. $login = htmlspecialchars($login);
  24.  
  25. if ($_GET['login'] != '') { //jezeli ktos przez adres probuje kombinowac
  26. echo file_get_contents("http://www.strona.pl/glowne/stopka.php");
  27. }
  28. if ($_GET['haslo'] != '') { //jezeli ktos przez adres probuje kombinowac
  29. echo file_get_contents("http://strona.pl/glowne/stopka.php");
  30. }
  31.  
  32. $haslo = md5($haslo); //szyfrowanie hasla
  33. if (!$login OR empty($login)) {
  34. echo '<p class="alert">Wypełnij pole z loginem!</p>';
  35. echo file_get_contents("http://www.strona.pl/glowne/stopka.php");
  36. }
  37. if (!$haslo OR empty($haslo)) {
  38. echo '<p class="alert">Wypełnij pole z hasłem!</p>';
  39. echo file_get_contents("http://www.strona.pl/glowne/stopka.php");
  40. }
  41. if($proby >= 3)
  42. {
  43. }
  44. else
  45. $zostało = 3 - $proby;
  46. echo '<center>Logowanie nieudane. Sprawdź pisownię nicku oraz hasła. <p> '.$login.' zostały ci jeszcze <font color="red" size="5">'.$zostało.'</font> próba/y wpisania poprawnego hasła. Jesli skończą ci sie próby twoje logowanie zostanie zawieszone na 15 minut.</center>';
  47. $bladplus = $proby + 1;
  48. $ostatnio = 'UPDATE `uzytkownicy` SET `blednelogowanie`= "'.$bladplus.'" WHERE `nick`="'.$login.'"';
  49. $idostatnio = mysql_query($ostatnio) or die(mysql_error());
  50. $istnick = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM `uzytkownicy` WHERE `nick` = '$login' AND `haslo` = '$haslo'")); // sprawdzenie czy istnieje uzytkownik o takim nicku i hasle
  51. if ($istnick[0] == 0) {
  52. } else {
  53. if($proby >= 3)
  54. {
  55. echo 'Twój dostęp do logowania został zablokowany na 15 min za wpisanie trzykronie złego hasła';
  56. }
  57. else
  58.  
  59. $_SESSION['nick'] = $login;
  60. $_SESSION['haslo'] = $haslo;
  61.  
  62. $blednelogowanie = 1;
  63.  
  64. $ostatnio = 'UPDATE `uzytkownicy` SET `blednelogowanie`= "'.$blednelogowanie.'" WHERE `nick`="'.$login.'"';
  65. $idostatnio = mysql_query($ostatnio) or die(mysql_error());
  66.  
  67. header("Location: strona.php");
  68. }
  69. include("glowne/stopka.php"); ?>
potreb
Sprawdź jedynie czy 3 próba lub więcej już nastąpiła ukryj formularz logowania wraz ze skryptem, odeślij do strony głównej itp) lub odeślij użytkownika do google, ja tak przynajmniej robię i rejestruje też kto co wpisywał. Przydatne jak jakis hakier próbuje ci coś namieszać.
artekp999
dzięki potreb
ale już sam rozwiązałem problem , znalazłem błąd wystarczyło przenieść warunek w inne miejsce
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.