L’autenticazione ad un sito è un elemento molto importante per la gestione dei contenuti; il sistema di login si implementa sia per l’accesso riservato degli utenti (ed in questo caso è necessario utilizzare un database) oppure per permettere all’amministratore di gestire il sito stesso, ed in questo caso non è necessario implementare il sistema di autenticazione attraverso l’interazione con un database.
Abbiamo già visto in precedenza come implementare un semplice login attraverso l’autenticazione di rete, utilizzando credenziali d’accesso statiche e le sessioni per proteggere le pagine riservate.
In questo tutorial vedremo come implementare il sistema di login attraverso un tradizionale modulo HTML ed utilizzeremo i cookie per la protezione dell’area riservata.
Creiamo il file login.php e corrediamolo del seguente codice all’interno della struttura HTML completa della pagina:
<form method="post" action="login.php">
Username<br><input type="text" name="username"><br>
Password<br><input type="password" name="password"><br><br>
<input type="submit" name="login" value="Login">
</form>
<?
if ($_POST["login"] != "")
{
$username = $_POST["username"];
$password = $_POST["password"];
if ($username == "demo" && $password == "demo")
{
setcookie("login", "OK");
echo "Benvenuto!<br><br>";
echo "<a href='privata.php'>ENTRA</a>";
}
else
{
echo "Accesso negato!";
}
}
?>
Il form mostra a video la coppia di valori username e password più il bottone di invio etichettato col testo Login, mentre il codice PHP verifica che il modulo sia stato inviato, recupera i valori username e password, verifica (stesso all’interno della condizione) che i valori siano quelli desiderati per eseguire il login e, in caso affermativo crea il cookie e consente l’accesso alla pagina privata, altrimenti mostra a video il messaggio di accesso negato.
Le pagine protette devono verificare che il cookie esista e, in caso contrario, rimandano l’utente alla pagina di login (il file login.php), altrimenti mostrano a video il contenuto della pagina.
Un esempio è il seguente, contenuto nel file privata.php:
<?
if ($_COOKIE["login"] == "")
{
header("location: /login.php");
}
?>
<html>
<body>
<p>Contenuto dell'area privata...</p>
</body>
</html>
Il logout è molto semplice: basta impostare il valore del cookie in modo da cancellarlo. Un esempio di codice potrebbe essere il seguente:
<?
setcookie("login");
header("location: /login.php");
?>
Questo file potrebbe essere chiamato logout.php.
