Come creare un form HTML + PHP che funziona davvero (convalidato e sicuro)

Categoria: Programmazione
Come creare un form HTML + PHP che funziona davvero (convalidato e sicuro)

Vuoi aggiungere un form contatti al tuo sito, ma non sai da dove iniziare? In questo articolo ti spiego passo dopo passo come creare un form semplice e sicuro con HTML e PHP.

1. Crea il form HTML

Questo è il codice da inserire in una pagina chiamata contatti.html (o qualsiasi altra):

<form action="invia.php" method="POST">
  <label for="nome">Nome:</label><br>
  <input type="text" name="nome" id="nome" required><br><br>

  <label for="email">Email:</label><br>
  <input type="email" name="email" id="email" required><br><br>

  <label for="messaggio">Messaggio:</label><br>
  <textarea name="messaggio" id="messaggio" rows="5" required></textarea><br><br>

  <button type="submit">Invia</button>
</form>

2. Il file PHP che riceve i dati: invia.php

Salva questo codice in un file chiamato invia.php nella stessa cartella:

<?php
// Controlla che il metodo sia POST
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Pulisci e valida i dati
    $nome = htmlspecialchars(trim($_POST["nome"]));
    $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
    $messaggio = htmlspecialchars(trim($_POST["messaggio"]));

    // Controllo campi vuoti
    if (empty($nome) || empty($email) || empty($messaggio)) {
        echo "Tutti i campi sono obbligatori.";
        exit;
    }

    // Controllo email valida
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Email non valida.";
        exit;
    }

    // Componi il messaggio email
    $destinatario = "Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo."; // Cambia con la tua email
    $oggetto = "Nuovo messaggio dal sito";
    $contenuto = "Nome: $nome\nEmail: $email\nMessaggio:\n$messaggio";

    // Invia email
    $inviato = mail($destinatario, $oggetto, $contenuto);

    if ($inviato) {
        echo "Messaggio inviato con successo!";
    } else {
        echo "Errore nell'invio del messaggio.";
    }
} else {
    echo "Accesso non autorizzato.";
}
?>

3. Sicurezza: cosa stai facendo con questi codici?

  • htmlspecialchars(): protegge da attacchi XSS (iniezione HTML/JS)
  • filter_var(): pulisce e valida l’email
  • trim(): rimuove spazi vuoti indesiderati

4. Cosa succede quando un utente invia il form?

  1. Compila i campi del modulo
  2. Il browser invia i dati a invia.php tramite POST
  3. Il PHP valida, filtra e invia un’email
  4. L’utente riceve un messaggio di conferma (o errore)

Conclusione

Con pochi passaggi hai un form contatti funzionante, sicuro e pronto da integrare in qualsiasi sito. Puoi anche espanderlo con allegati, checkbox, selettori, captcha… lo vediamo nei prossimi articoli 😉

➡️ Copia il codice, personalizzalo e testalo su un server con PHP attivo (come XAMPP, MAMP o uno spazio hosting).

Hai bisogno del file già pronto in zip o vuoi la versione con alert animati? Scrivimi nei commenti o scrivici nella sezione “Diventa virale”!

Read Time: 2 mins
Visite: 24

Redazione RSWT

Keidea srl agenzia web specializzata nello sviluppo IT e soluzioni di digital marketing

Login