📩 Mini Progetto: Form Contatti con Salvataggio su Database

Con questo ultimo progetto realizziamo un form contatti completo che permette di:

👉 Un progetto pratico e molto realistico, perfetto per chiudere il tutorial!


🧠 Struttura del progetto

Useremo:


🗂️ 1. Creare il database

CREATE DATABASE contatti;

📌 Creare la tabella

CREATE TABLE messaggi (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100),
    email VARCHAR(100),
    messaggio TEXT
);

🔌 2. Connessione al database

db.php

<?php

$conn = mysqli_connect("localhost", "root", "", "contatti");

if(!$conn){
    die("Errore connessione");
}
?>

📝 3. Form HTML

index.php

<?php require_once "db.php"; ?>

<form method="POST">
    <input type="text" name="nome" placeholder="Nome" required><br>
    <input type="email" name="email" placeholder="Email" required><br>
    <textarea name="messaggio" placeholder="Messaggio" required></textarea><br>
    <button type="submit">Invia</button>
</form>

🧹 4. Validazione e salvataggio

<?php

if(isset($_POST["nome"])){

    $nome = trim($_POST["nome"]);
    $email = trim($_POST["email"]);
    $messaggio = trim($_POST["messaggio"]);

    if(empty($nome) || empty($email) || empty($messaggio)){
        echo "Tutti i campi sono obbligatori ❌";
    }
    elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
        echo "Email non valida ❌";
    }
    else{

        $sql = "INSERT INTO messaggi (nome, email, messaggio)
                VALUES ('$nome', '$email', '$messaggio')";

        mysqli_query($conn, $sql);
  echo "Messaggio inviato con successo 📩";
    }
}
?>

📥 5. Visualizzare i messaggi

messaggi.php

<?php require_once "db.php"; ?>

<h2>Messaggi ricevuti</h2>

<?php

$result = mysqli_query($conn, "SELECT * FROM messaggi");

while($row = mysqli_fetch_assoc($result)){
    echo "<strong>" . $row["nome"] . "</strong><br>";
    echo $row["email"] . "<br>";
    echo $row["messaggio"] . "<br>";
    echo "<hr>";
}
?>

🧪 Esempio completo (index.php)

<?php require_once "db.php"; ?>

<form method="POST">
    <input type="text" name="nome" required><br>
    <input type="email" name="email" required><br>
    <textarea name="messaggio" required></textarea><br>
    <button type="submit">Invia</button>
</form>

<?php

if(isset($_POST["nome"])){

    $nome = trim($_POST["nome"]);
    $email = trim($_POST["email"]);
    $messaggio = trim($_POST["messaggio"]);

    if(empty($nome) || empty($email) || empty($messaggio)){
        echo "Compila tutti i campi ❌";
    }
    elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
        echo "Email non valida ❌";
    }
    else{

        mysqli_query($conn, "INSERT INTO messaggi (nome, email, messaggio)
                             VALUES ('$nome', '$email', '$messaggio')");

        echo "Messaggio inviato 🎉";
    }
}
?>

🛡️ Miglioramenti possibili

Questo progetto è base, ma puoi migliorarlo:


🎯 Riassunto

In questo progetto hai utilizzato:


📚 Conclusione

Il form contatti con database è uno dei progetti più utili nella pratica reale.

👉 È qualcosa che si trova in quasi tutti i siti web!


🎉 Complimenti hai completato l’intero tutorial PHP!