Autenticazione semplice tramite database in PHP
Implementiamo l'autenticazione più semplice basata su database, per ora senza registrazione. Invece della registrazione degli utenti, inseriremo semplicemente i loro login e password in una tabella nel database:
| id | login | password |
|---|---|---|
| 1 | user | 12345 |
| 2 | admin | 123 |
Creiamo ora un modulo in cui verranno inseriti il login e la password:
<form action="" method="POST">
<input name="login">
<input name="password" type="password">
<input type="submit">
</form>
Scriviamo ora il codice che controllerà se il modulo è stato inviato e, in caso affermativo, controllerà se nel database esiste un utente con tale login e password:
<?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)) {
// utente autenticato
} else {
// login o password errati
}
}
?>
Implementate l'autenticazione descritta sopra. Fate in modo che, se l'utente ha superato l'autenticazione - venga visualizzato un messaggio in merito, e se non l'ha superata - un messaggio che indica che il login o la password inseriti non sono corretti.
Modificate il codice in modo che in caso di autenticazione riuscita il modulo per l'inserimento della password e del login non venga mostrato sullo schermo.
Modificate il codice in modo che in caso di autenticazione riuscita
venga effettuato un reindirizzamento alla pagina
index.php.
Modificate il codice in modo che sulla pagina
index.php venga visualizzato un messaggio
sull'autenticazione riuscita. Risolvete il problema tramite
messaggi flash sulle sessioni.