Ha a felhasználó kitölti és elküldi a bejelentkezés űrlapot, akkor azt az oldalt tölti le ismét, amelyet korábban látott.
Az űrlapadatok ellenőrzése az oldal összeállításának elején kerül végrehajtásra, így a felhasználó azokhoz az adatokhoz és linkekhez azonnal hozzáfér, amelyek megtekintéséhez joga van.
Az 5. hibás bejelentkezési kísérletet követő 1 órában, a felhasználó próbálkozásakor a kód csupán az 1 óra kezdetének időpontját aktualizálja.:) A hibakezelésnek ez a módja a kísérletező kedvű felhasználók és robotok próbálkozásaitól védi a felhasználók adatait.
Ha a hibás próbálkozások száma nem lépte túl a megengedett mértéket, akkor ellenőrzi, hogy a felhasználónév és a jelszó összetartozik-e.
Az adatbázis felhasznalo_mod táblájában az utolsó 5 bejelentkezés és az utolsó 5 hibás bejelentkezési kísérletet is tároljuk.
A kód a w3_bekijelentkezes.php -ban található. függvény része.
1. példa:
Forráskód
<?php
if ($_POST['submit_Bejelentkezes'] 'Bejelentkezés') {
$Fnev = tiszta_szo($_POST['Fnev']);
$Fjelszo = tiszta_szo($_POST['Fjelszo']);
$Bejelentkezes_UZ = "";
$r_ip = getip();
$JSZ = $Fjelszo = md5($Fjelszo);
$SelectStr = "SELECT * FROM felhasznalo_reg WHERE Fnev='$Fnev'";
$result = mysqli_query($MySqliLink,$SelectStr) OR die("Hiba BE 01 ");
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
$JSZ1 = $row['Fjelszo'];
$Fszint = $row['Fszint'];
$Fhiba = $row['Fhiba'];
$FID = $row['id'];
if ($Fhiba > 4) {
$SelectStr = "SELECT DATE_ADD(Datum,INTERVAL 1 HOUR) AS Ido_Ujraelerheto, NOW() AS Ido_aktualis
FROM felhasznalo_mod WHERE Fid=$FID ORDER by Datum DESC";
$result = mysqli_query($MySqliLink,$SelectStr) OR die("Hiba BE 02 ");
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
$IDO = $row['Ido_Ujraelerheto'];
$AktIDO = $row['Ido_aktualis'];
if ($IDO > $AktIDO) {
$Bejelentkezes_UZ = "5 hibás bejelenkezés miatt $IDO -ig a fiók felfüggesztésre került. <br>($AktIDO)";
} else {
$UpdateStr = "UPDATE felhasznalo_reg SET Fhiba = 0 WHERE Fnev='$Fnev'" ;
if (!mysqli_query($MySqliLink,$UpdateStr)) {die("Hiba BE 03 ");}
$Fhiba = 0;
}
}
if ($Fhiba < 5) {
if ($JSZ
$JSZ1) {
$UpdateStr = "UPDATE felhasznalo_reg SET Fhiba = 0 WHERE Fnev='$Fnev'";
if (!mysqli_query($MySqliLink,$UpdateStr)) {die("Hiba BE 04 ");}
$InsertIntoStr = "INSERT INTO felhasznalo_mod VALUES ('', ".$FID.",'".$r_ip."','Bejelntkezés',NOW())";
if (!mysqli_query($MySqliLink,$InsertIntoStr)) {die("Hiba BE 05 ");}
$SelectStr = "SELECT * FROM felhasznalo_mod WHERE Fid=$FID AND Ftev='Bejelntkezés'";
$result = mysqli_query($MySqliLink,$SelectStr) OR die("Hiba BE 06 ");
$DbSzam = mysqli_num_rows($result);
$DbSzamTorol = $DbSzam - 5;
if ($DbSzamTorol>0) {
$DeleteStr = "Delete FROM felhasznalo_mod WHERE Ftev='Bejelntkezés' ORDER BY Datum LIMIT $DbSzamTorol";
if (!mysqli_query($MySqliLink,$DeleteStr)) {die("Hiba BE 07 ");}
}
$hozzaferes = $_SESSION['hozzaferesi_szint']=$Fszint;
$mm_felhasznalo = $_SESSION['munkamenet_felhasznalo'] = $Fnev;
} else {
$Fhiba++;
$Bejelentkezes_UZ .= "Hibás felhasználónév vagy jelszó!<br> $Fhiba. rossz próbálkozás.<br>
Az ötödik után a felhasználó 1 órára fel lesz függesztve.";
$UpdateStr = "UPDATE felhasznalo_reg SET Fhiba = '$Fhiba' WHERE Fnev='$Fnev'";
if (!mysqli_query($MySqliLink,$UpdateStr)) {die("Hiba BE 08 ");}
if ($FID > 0) {
$InsertIntoStr = "INSERT INTO felhasznalo_mod VALUES ('', ".$FID.",'".$r_ip."','Hibás jelszó',NOW())";
if (!mysqli_query($MySqliLink,$InsertIntoStr)) {die("Hiba BE 09 ");}
$SelectStr = "SELECT * FROM felhasznalo_mod WHERE Fid=$FID AND Ftev='Hibás jelszó'";
$result = mysqli_query($MySqliLink,$SelectStr) OR die("Hiba BE 10 ");
$DbSzam = mysqli_num_rows($result);
$DbSzamTorol = $DbSzam - 5;
if ($DbSzamTorol>0) {
$DeleteStr = "Delete FROM felhasznalo_mod WHERE Fid=$FID AND Ftev='Hibás jelszó'
ORDER BY Datum LIMIT $DbSzamTorol";
if (!mysqli_query($MySqliLink,$DeleteStr)) {die("Hiba BE 09 ");}
}
}
$hozzaferes = $_SESSION['hozzaferesi_szint'] = 1;
$mm_felhasznalo = $_SESSION['munkamenet_felhasznalo'] = "";
}
}
}
?>
A webáruház megtekinthető és letölthető itt: Ingyen webáruház - W3 Free Shop