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:
| id | login | password |
|---|---|---|
| 1 | user | 12345 |
| 2 | admin | 123 |
Dabar sukurkime formą, į kurią bus įvedami prisijungimo vardas ir slaptažodis:
<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:
<?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
}
}
?>
Į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.
Modifikuokite kodą taip, kad sėkmingos autorizacijos atveju forma slaptažodžio ir prisijungimo vardo įvedimui nebebūtų rodoma ekrane.
Modifikuokite kodą taip, kad sėkmingos
autorizacijos atveju būtų atliekamas nukreipimas į puslapį
index.php.
Modifikuokite kodą taip, kad puslapyje
index.php būtų rodoma žinutė apie
sėkmingą autorizaciją. Išspręskite užduotį naudodami
"flash" žinutes sesijose.