PHP: Login e registrazione
Login e registrazione in PHP
Un sistema di login e registrazione consente agli utenti di creare un account e accedere in modo sicuro. In PHP si combinano gestione dei form, salvataggio su database e verifica con hash delle password.
Introduzione
Il processo di registrazione permette a un utente di creare credenziali, che vengono salvate nel database. Il login consente di accedere verificando che le credenziali inserite corrispondano a quelle registrate. Per la sicurezza, le password non vanno mai salvate in chiaro ma trasformate in hash.
Registrazione di un utente
Nella fase di registrazione, i dati inviati dal form vengono validati e la password viene trasformata in hash prima del salvataggio nel database.
Codice Esempio: registrazione utente
<?php// Connessione al database$conn = new mysqli("localhost", "root", "", "scuola");
$username = "mario";
$password = "mypass123";
// Hash della password$hash = password_hash($password, PASSWORD_DEFAULT);
// Inserimento nel database$sql = "INSERT INTO utenti (username, password) VALUES ('$username', '$hash')";
if ($conn->query($sql) === TRUE) {
echo "Registrazione avvenuta con successo.";
} else {
echo "Errore: " . $conn->error;
}$conn->close();
?><!-- Output nel browser:
Registrazione avvenuta con successo.
-->
⚠️ Nota Bene:
Gli esempi sono a puro scopo didattico. Si sconsiglia di utilizzarli tali e quali in ambienti di produzione.
Login utente
Durante il login si recupera l’hash della password dal database e si confronta con la password inserita usando password_verify().
Codice Esempio: login utente
<?php// Connessione al database$conn = new mysqli("localhost", "root", "", "scuola");
$username = "mario";
$passwordInserita = "mypass123";
// Recupero dati dal database$sql = "SELECT password FROM utenti WHERE username = '$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($passwordInserita, $row["password"])) {
echo "Login eseguito con successo.";
session_start();
$_SESSION["utente"] = $username;
} else {
echo "Password errata.";
}} else {
echo "Utente non trovato.";
}$conn->close();
?><!-- Output nel browser:
Login eseguito con successo.
-->
⚠️ Nota Bene:
Gli esempi sono a puro scopo didattico. Si sconsiglia di utilizzarli tali e quali in ambienti di produzione.
Considerazioni sulla sicurezza
- Utilizzare sempre password_hash() e password_verify().
- Evitare di inserire direttamente valori nelle query: preferire i prepared statements.
- Proteggere le sessioni contro hijacking e fixation.
Tabella riassuntiva fasi login/registrazione
| Fase | Descrizione | Strumenti PHP |
|---|---|---|
| Registrazione | Salvataggio utente e hash password | password_hash() |
| Login | Verifica password inserita | password_verify() |
| Sessione | Memorizzazione utente autenticato | $_SESSION |
Considerazioni
Un sistema di login e registrazione deve sempre basarsi su password hashate e query sicure. L’uso corretto di sessioni e controlli riduce il rischio di accessi non autorizzati.

IP: 216.73.216.58