Paprasta autorizacija per duomenų bazę naudojant PHP

Įgyvendinkime pačią paprasčiausią autorizaciją remiantis duomenų baze, kol kas be registracijos. Vietoj vartotojų registracijos, mes tiesiog įvesime jų prisijungimo vardus ir slaptažodžius į lentelę duomenų bazėje:

users
id login password
1 user 12345
2 admin 123

Dabar sukurkime formą, į kurią bus įvedami prisijungimo vardas ir slaptažodis:

login.php<form action="" method="POST">
  <input name="login">
  <input name="password" type="password">
  <input type="submit">
</form>

Dabar parašykime kodą, kuris patikrins, ar forma buvo išsiųsta, ir jei taip, tai patikrins, ar duomenų bazėje yra vartotojas su tokiu prisijungimo vardu ir slaptažodžiu:

login.php<?php
  if (!empty($_POST['password']) and !empty($_POST['login'])) {
    $login = $_POST['login'];
    $password = $_POST['password'];
    
    $query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
    $res = mysqli_query($link, $query);
    $user = mysqli_fetch_assoc($res);
    
    if (!empty($user)) {
      // vartotojas autorizuotas
    } else {
      // neteisingas prisijungimo vardas arba slaptažodis
    }
  }
?>
Задание 1

Įgyvendinkite aukščiau aprašytą autorizaciją. Padarykite taip, kad jei vartotojas buvo sėkmingai autorizuotas - būtų rodoma apie tai žinutė, o jei ne - tai žinutė, kad įvestas prisijungimo vardas arba slaptažodis yra neteisingi.

Задание 2

Modifikuokite kodą taip, kad sėkmingos autorizacijos atveju forma slaptažodžio ir prisijungimo vardo įvedimui nebebūtų rodoma ekrane.

Задание 3

Modifikuokite kodą taip, kad sėkmingos autorizacijos atveju būtų atliekamas nukreipimas į puslapį index.php.

Задание 4

Modifikuokite kodą taip, kad puslapyje index.php būtų rodoma žinutė apie sėkmingą autorizaciją. Išspręskite užduotį naudodami "flash" žinutes sesijose.