PHP Form Validation - Campo obbligatorio

Questa sezione mostra come creare campi di input obbligatori e creare messaggi di errore necessari.

PHP - Campo di input

Dalle regole di validazione della sezione precedente, vediamo che i campi "Nome", "Email" e "Genere" sono obbligatori. Questi campi non possono essere vuoti e devono essere compilati nell'HTML del modulo.

Campo Regole di validazione
Nome Obbligatorio. Deve contenere lettere e spazi.
Email Obbligatorio. Deve contenere un indirizzo email valido (che include @ e .).
Sito web Opzionale. Se compilato, deve contenere un URL valido.
Commento Opzionale. Campo di input a multilinea (casella di testo).
Genere Obbligatorio. È necessario selezionare un'opzione.

Nella sezione precedente, tutti i campi di input erano opzionali.

Nel codice seguente, abbiamo aggiunto alcune nuove variabili: $nameErr, $emailErr, $genderErr e $websiteErr. Queste variabili di errore salvano i messaggi di errore dei campi richiesti. Abbiamo anche aggiunto un if else per ogni variabile $_POST. Questa istruzione verifica se il variabile $_POST è vuoto (attraverso la funzione PHP empty()). Se è vuoto, il messaggio di errore viene memorizzato in variabili di errore diverse. Se non è vuoto, l'input utente viene inviato tramite la funzione test_input():

<?php}}
// Definire variabili e impostare valori vuoti
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Il nome è obbligatorio";
  } else {
    $name = test_input($_POST["name"]);
  }
  if (empty($_POST["email"])) {
    $emailErr = "L'email è obbligatoria";
  } else {
    $email = test_input($_POST["email"]);
  }
  if (empty($_POST["website"])) {
    $website = "";
  } else {
    $website = test_input($_POST["website"]);
  }
  if (empty($_POST["comment"])) {
    $comment = "";
  } else {
    $comment = test_input($_POST["comment"]);
  }
  if (empty($_POST["gender"])) {
    $genderErr = "Il genere è obbligatorio";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}
?>

PHP - Mostra messaggi di errore

In un modulo HTML, aggiungiamo un po' di script dietro ogni campo richiesto. Se necessario, viene generato un messaggio di errore appropriato (se l'utente tenta di inviare il modulo senza aver compilato i campi obbligatori):

Esempio

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Nome: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Sito web:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
<label>Commento: <textarea name="comment" rows="5" cols="40"></textarea></label>
<br><br>
Sesso:
<input type="radio" name="gender" value="female">Femmina
<input type="radio" name="gender" value="male">Maschio
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Invia"> 
</form>

Esempio di esecuzione

Ecco la verifica dei dati di input, ovvero “Il campo Nome contiene solo lettere e spazi?” e “Il campo E-mail contiene una sintassi di indirizzo e-mail valida?” e se è stato compilato il campo Website, “Questo campo contiene un URL valido?”.