Tutorial PHP

Home | Tutorial PHP | Art. # 67

Sistema di login in PHP con i cookies, senza database

Registrazione Domini
Registrazione Domini Internet ai prezzi più bassi d'Europa: soli 5,40 euro più IVA all'anno!

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.

 

Scritto in data 11/03/2008

Segnalalo ad un Amico | Aggiungilo ai Preferiti

© 2008 Appunti PHP - A cura di Luca Ruggiero - Partita IVA 05564851219 - Privacy | Pubblicità | Contatti