Eenvoudige authenticatie via database in PHP
Laten we de eenvoudigste authenticatie implementeren op basis van een database, voorlopig zonder registratie. In plaats van het registreren van gebruikers, voeren we gewoon hun logins en wachtwoorden in een tabel in de database in:
| id | login | password |
|---|---|---|
| 1 | user | 12345 |
| 2 | admin | 123 |
Laten we nu een formulier maken waarin de login en wachtwoord worden ingevoerd:
<form action="" method="POST">
<input name="login">
<input name="password" type="password">
<input type="submit">
</form>
Laten we nu de code schrijven die controleert of het formulier is verzonden en, indien verzonden, controleert of er een gebruiker in de database is met zo'n login en wachtwoord:
<?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)) {
// gebruiker geauthenticeerd
} else {
// verkeerde login of wachtwoord
}
}
?>
Implementeer de hierboven beschreven authenticatie. Zorg ervoor dat, als de gebruiker is geauthenticeerd, er een bericht over wordt weergegeven, en als niet geslaagd - dan een bericht dat de ingevoerde login of wachtwoord niet correct zijn.
Pas de code zo aan dat in geval van succesvolle authenticatie het formulier voor het invoeren van wachtwoord en login niet op het scherm wordt getoond.
Pas de code zo aan dat in geval van succesvolle
authenticatie er een redirect plaatsvindt naar de pagina
index.php.
Pas de code zo aan dat op de pagina
index.php een bericht over
succesvolle authenticatie wordt weergegeven. Los de taak op via
flash-berichten op sessies.