🔐 Mini Progetto: Sistema Login Base in PHP
In questo progetto realizziamo un sistema di login semplice
con:
-
📝 registrazione utente
-
🔑 accesso (login)
-
🔐 sessione utente
-
🚪 logout
👉 Un progetto fondamentale per qualsiasi applicazione web!
🧠 Struttura del progetto
Useremo:
-
🐘 PHP
-
🗄️ MySQL
-
🔐 password hash
-
🧾 sessioni
🗂️ 1. Creare il database
CREATE DATABASE login; |
|
|
📌 Tabella utenti
CREATE TABLE utenti (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100),
password VARCHAR(255)
); |
|
|
🔌 2. Connessione al database
db.php
<?php
$conn = mysqli_connect("localhost", "root", "", "login");
if(!$conn){
die("Errore connessione");
}
?> |
|
|
📝 3. Registrazione utente
register.php
<?php require_once "db.php"; ?>
<form method="POST">
<input type="text" name="username" placeholder="Username"
required>
<input type="password" name="password" placeholder="Password"
required>
<button type="submit">Registrati</button>
</form>
<?php
if(isset($_POST["username"])){
$username = $_POST["username"];
$password = $_POST["password"];
// hash password
$hash = password_hash($password, PASSWORD_DEFAULT);
$sql = "INSERT INTO utenti (username, password) VALUES
('$username', '$hash')";
mysqli_query($conn, $sql);
echo "Utente registrato ✅";
}
?> |
|
|
🔑 4. Login utente
login.php
<?php
require_once "db.php";
session_start();
?>
<form method="POST">
<input type="text" name="username" placeholder="Username"
required>
<input type="password" name="password" placeholder="Password"
required>
<button type="submit">Login</button>
</form>
<?php
if(isset($_POST["username"])){
$username = $_POST["username"];
$password = $_POST["password"];
$sql = "SELECT * FROM utenti WHERE username = '$username'";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) > 0){
$row = mysqli_fetch_assoc($result);
if(password_verify($password,
$row["password"])){
$_SESSION["utente"] = $username;
echo "Login
riuscito 🎉";
}else{
echo
"Password errata ❌";
}
}else{
echo "Utente non trovato ❌";
}
}
?> |
|
|
🔐 5. Pagina protetta
dashboard.php
<?php
session_start();
if(!isset($_SESSION["utente"])){
die("Accesso negato ❌");
}
echo "Benvenuto " . $_SESSION["utente"] . " 👋";
echo "<br><a href='logout.php'>Logout</a>";
?> |
|
|
🚪 6. Logout
logout.php
<?php
session_start();
$_SESSION = [];
session_destroy();
echo "Logout effettuato 🚪";
?> |
|
|
⚠ Problemi di sicurezza (versione base)
Questo è un sistema semplice, ma ha alcune limitazioni:
-
❌ query vulnerabili (no prepared statements)
-
❌ nessuna validazione input
-
❌ nessun controllo duplicati username
👉 Nei progetti reali bisogna migliorarlo!
🛡️ Miglioramenti consigliati
🎯 Riassunto
In questo progetto hai imparato a:
📚 Conclusione
Il sistema di login base è uno dei progetti più
importanti per chi studia PHP.
👉 Anche se semplice, rappresenta la base per qualsiasi applicazione con
utenti.
🎉 Sei quasi alla fine del tuo tutorial!