Lihtne andmebaasi autentimine PHP-s
Rakendame lihtsaima võimaliku autentimise andmebaasi põhjal, praegu registreerimiseta. Registreerimise asemel lisame kasutajate andmed otse andmebaasi tabelisse:
| id | login | password |
|---|---|---|
| 1 | user | 12345 |
| 2 | admin | 123 |
Loome nüüd vormi, kuhu saab sisestada kasutajanime ja parooli:
<form action="" method="POST">
<input name="login">
<input name="password" type="password">
<input type="submit">
</form>
Kirjutame nüüd koodi, mis kontrollib, kas vorm on saadetud ja kui on, siis kontrollib, kas andmebaasis on kasutaja sellise kasutajanime ja parooliga:
<?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)) {
// kasutaja autenditud
} else {
// vale kasutajanimi või parool
}
}
?>
Rakendage ülalkirjeldatud autentimine. Tehke nii, et kui kasutaja on edukalt autenditud, kuvatakse sellest teade, ja kui ei, siis teade, et sisestatud kasutajanimi või parool on vale.
Muutke koodi nii, et edukal autentimisel parooli ja kasutajanime sisestamise vorm ekraanil ei kuvataks.
Muutke koodi nii, et edukal autentimisel
suunatakse edasi lehele
index.php.
Muutke koodi nii, et lehel
index.php kuvataks teade
edukast autentimisest. Lahendage ülesanne
sessioonil põhinevate flash-teadetega.