WEBFEJLESZTÉS, WEBÁRUHÁZ KÉSZÍTÉS   Ingyenes elektronikus tananyag interaktív
weboldalak készítéséhez.
Custom Search
 
vissza VISSZA    
menü MENÜ    
ismét ISMÉT    
tovább TOVÁBB    

Bejelentkezés folyamata


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