PHP
HTML
CSS
JavaScript
Generatori
Varie & Old

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

CODE: PHPpreleva codice
  1. <?php
  2. // Connessione al database
  3. $conn = new mysqli("localhost", "root", "", "scuola");
  4.  
  5. $username = "mario";
  6. $password = "mypass123";
  7.  
  8. // Hash della password
  9. $hash = password_hash($password, PASSWORD_DEFAULT);
  10.  
  11. // Inserimento nel database
  12. $sql = "INSERT INTO utenti (username, password) VALUES ('$username', '$hash')";
  13. if ($conn->query($sql) === TRUE) {
  14.   echo "Registrazione avvenuta con successo.";
  15. } else {
  16.   echo "Errore: " . $conn->error;
  17. }
  18. $conn->close();
  19. ?>
  20. <!-- Output nel browser:
  21. Registrazione avvenuta con successo.
  22. -->

⚠️ 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

CODE: PHPpreleva codice
  1. <?php
  2. // Connessione al database
  3. $conn = new mysqli("localhost", "root", "", "scuola");
  4.  
  5. $username = "mario";
  6. $passwordInserita = "mypass123";
  7.  
  8. // Recupero dati dal database
  9. $sql = "SELECT password FROM utenti WHERE username = '$username'";
  10. $result = $conn->query($sql);
  11.  
  12. if ($result->num_rows > 0) {
  13.   $row = $result->fetch_assoc();
  14.   if (password_verify($passwordInserita, $row["password"])) {
  15.     echo "Login eseguito con successo.";
  16.     session_start();
  17.     $_SESSION["utente"] = $username;
  18.   } else {
  19.     echo "Password errata.";
  20.   }
  21. } else {
  22.   echo "Utente non trovato.";
  23. }
  24. $conn->close();
  25. ?>
  26. <!-- Output nel browser:
  27. Login eseguito con successo.
  28. -->

⚠️ 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
RegistrazioneSalvataggio utente e hash passwordpassword_hash()
LoginVerifica password inseritapassword_verify()
SessioneMemorizzazione 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.


I Cookie su questo sito:

Il nostro sito utilizza cookie e altre tecnologie in modo tale che sia noi, sia i nostri partner, possiamo ricordarci di te e capire come tu e gli altri visitatori utilizzate il nostro sito. Qui puoi trovare ulteriori informazioni sui cookie e le altre tecnologie. Chiudendo questo banner o continuando la navigazione acconsenti all'uso dei cookie. Acconsento Info Cookies