PHP

Introduzione

Introduzione ai Form HTML: il punto di partenza dei dati per PHP

Un form (o modulo) è un elemento HTML che permette all'utente di inserire dati (testo, email, password, selezioni, ecc.) e inviarli al server, dove PHP li riceve ed elabora. Dal punto di vista di PHP, il form è il punto d'ingresso dei dati nel programma.


1️⃣ Creare un Form HTML di base

Un form è definito in HTML con il tag <form>. Al suo interno ci sono campi di input e un pulsante per l'invio.


<!-- Inizio del file HTML -->
<form action="processa.php" method="post">
    
    <label for="nome">Nome:</label>
    <input type="text" id="nome" name="nome">
    
    <label for="email">Email:</label>
    <input type="email" id="email" name="email">
    
    <input type="submit" value="Invia">
    
</form>
<!-- Fine del file HTML -->

  • <form>: Il contenitore principale di tutti gli elementi di input.
  • action: Specifica dove (cioè in quale file PHP) i dati del form verranno inviati.
  • method: Definisce come i dati vengono inviati al server. I metodi più usati sono GET e POST.
  • <input>: L'elemento che riceve l'input dell'utente. Ogni input deve avere un name, usato da PHP per identificare il valore ricevuto.

2️⃣ Differenza tra GET e POST

MetodoCaratteristicheQuando usarlo
GETI dati vengono aggiunti all’URL (visibili nell’indirizzo)Per ricerche o link condivisibili
POSTI dati vengono inviati nel corpo della richiesta (non visibili)Per dati sensibili o moduli complessi (login, contatti, ecc.)

3️⃣ L'invio dei dati al server

Quando l’utente clicca su “Invia”, il browser manda i dati al file indicato in action (in questo caso processa.php) utilizzando il metodo specificato (POST o GET).


4️⃣ PHP riceve e gestisce i dati

Nel file processa.php, puoi accedere ai dati inviati tramite le variabili superglobali $_POST o $_GET:

<?php
    // 1. Recupero dei dati dall'array superglobale $_POST
    $nome = htmlspecialchars($_POST['nome'] ?? '');
    $email = htmlspecialchars($_POST['email'] ?? '');

    // 2. Stampa dell'output a video
    echo "Ciao $nome, la tua email è $email.";
?>
  • $_POST è un array associativo che contiene i dati inviati con method="post".
  • Se avessi usato method="get", i dati sarebbero accessibili con $_GET.
  • htmlspecialchars() converte caratteri speciali in entità HTML, prevenendo problemi di sicurezza (XSS).

💡 Invio del form allo stesso file

A volte è utile gestire l'invio e la visualizzazione del form nello stesso file PHP. Puoi farlo impostando l'attributo action così:


<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">

In questo modo, il form invia i dati allo stesso script, che può mostrare errori, ricaricare i valori o confermare l'invio.