🔐 Mini Progetto: Sistema Login Base in PHP

In questo progetto realizziamo un sistema di login semplice con:

👉 Un progetto fondamentale per qualsiasi applicazione web!


🧠 Struttura del progetto

Useremo:


🗂️ 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:

👉 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!