artekp999
5.05.2011, 17:11:33
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.
<?php include("glowne/gora.php");
include("polacz.php");
$login = $_POST['login'];
$query = mysql_query("select * from uzytkownicy WHERE `nick`='$login'");
$proby = "$rekord[13]";
if($proby >= 3)
{
echo '<center><h2>Twój dostęp do logowania został zablokowany na 15 min za wpisanie trzykrotnie złego hasła</h2></center><p>'; }
else
$login = $_POST['login'];
$haslo = $_POST['haslo'];
if ($_GET['login'] != '') { //jezeli ktos przez adres probuje kombinowac
}
if ($_GET['haslo'] != '') { //jezeli ktos przez adres probuje kombinowac
}
$haslo = md5($haslo); //szyfrowanie hasla if (!$login OR
empty($login)) { echo '<p class="alert">Wypełnij pole z loginem!</p>'; }
if (!$haslo OR
empty($haslo)) { echo '<p class="alert">Wypełnij pole z hasłem!</p>'; }
if($proby >= 3)
{
}
else
$zostało = 3 - $proby;
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>'; $bladplus = $proby + 1;
$ostatnio = 'UPDATE `uzytkownicy` SET `blednelogowanie`= "'.$bladplus.'" WHERE `nick`="'.$login.'"';
$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 if ($istnick[0] == 0) {
} else {
if($proby >= 3)
{
echo 'Twój dostęp do logowania został zablokowany na 15 min za wpisanie trzykronie złego hasła'; }
else
$_SESSION['nick'] = $login;
$_SESSION['haslo'] = $haslo;
$blednelogowanie = 1;
$ostatnio = 'UPDATE `uzytkownicy` SET `blednelogowanie`= "'.$blednelogowanie.'" WHERE `nick`="'.$login.'"';
header("Location: strona.php"); }
include("glowne/stopka.php"); ?>
potreb
5.05.2011, 18:01:25
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
5.05.2011, 18:56:15
dzięki potreb
ale już sam rozwiązałem problem , znalazłem błąd wystarczyło przenieść warunek w inne miejsce