PHP: Sistema login
Sistema di login in PHP
Vediamo come realizzare un semplice sistema di login in PHP, utilizzando variabili di sessione per gestire l’autenticazione e controllare l’accesso degli utenti alle pagine protette.
Introduzione
Un sistema di login consente a un utente di accedere ad aree riservate di un sito web inserendo nome utente e password. In PHP si usano le sessioni per memorizzare lo stato dell’utente autenticato e per garantire che solo gli utenti validi possano accedere a certe pagine.
- Form HTML per l’inserimento di username e password.
- Script PHP che verifica le credenziali.
- Sessioni PHP per mantenere lo stato dell’utente loggato.
- Logout per terminare la sessione.
Form di login
Si crea un form HTML per l’inserimento di username e password. I dati verranno inviati a un file PHP per la verifica.
Codice Esempio: form login
Script PHP di autenticazione
Lo script controlla se i dati inseriti corrispondono a credenziali valide. In questo esempio le credenziali sono definite direttamente nello script, ma in un’applicazione reale dovrebbero essere verificate su un database con password cifrate.
Codice Esempio: login.php
<?phpsession_start();
$utente = "admin";
$pass = "1234"; // in produzione usare password hashate
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
if ($username == $utente && $password == $pass) {
$_SESSION["username"] = $username;
echo "Login effettuato con successo.";
// reindirizzamento a pagina protettaheader("Location: area_riservata.php");
exit();
} else {
echo "Credenziali non valide.";
}}?><!-- Output:
Login effettuato con successo. (se credenziali corrette)
Credenziali non valide. (se credenziali errate)
-->
Pagina protetta
La pagina riservata controlla se la sessione dell’utente è attiva. Se non lo è, l’utente viene reindirizzato al form di login.
Codice Esempio: area_riservata.php
<?phpsession_start();
if (!isset($_SESSION["username"])) {
header("Location: login.html");
exit();
}echo "Benvenuto " . $_SESSION["username"] . ", sei nell'area riservata.";
?><!-- Output:
Benvenuto admin, sei nell'area riservata.
-->
Logout
Il logout distrugge la sessione, disconnettendo l’utente dal sistema.
Codice Esempio: logout.php
<?phpsession_start();
session_unset();
session_destroy();
echo "Logout effettuato con successo.";
?><!-- Output:
Logout effettuato con successo.
-->
Considerazioni
Un sistema di login in PHP si basa su form di input, verifica delle credenziali e sessioni per mantenere lo stato. L’esempio mostrato è basilare e non sicuro per l’uso in produzione. In applicazioni reali è fondamentale proteggere le password con funzioni di hashing (password_hash, password_verify), usare un database sicuro e implementare controlli aggiuntivi per prevenire vulnerabilità.

IP: 216.73.216.58