📩 Mini Progetto: Form Contatti con Salvataggio su Database
Con questo ultimo progetto realizziamo un form contatti completo
che permette di:
-
📝 inserire nome, email e messaggio
-
📥 salvare i dati nel database
-
👀 visualizzare i messaggi ricevuti
👉 Un progetto pratico e molto realistico, perfetto per chiudere il
tutorial!
🧠 Struttura del progetto
Useremo:
-
🐘 PHP
-
🗄️ MySQL
-
🧾 form HTML
-
🛡️ validazione base
🗂️ 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:
-
🔐 usare Prepared Statements
-
🧹 sanitizzare output (htmlspecialchars)
-
📧 inviare email automatica
-
📅 aggiungere data messaggio
-
❌ eliminare messaggi
🎯 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!