Gli ultimi tutorial di sviluppo web
 

PHP 5 Forme - Campi obbligatori


Questo capitolo mostra come fare campi di input richiesti e creare messaggi di errore, se necessario.


PHP - Campi obbligatori

Dalla tabella regole di convalida nella pagina precedente, vediamo che il "Name" , "E-mail" , e "Gender" i campi sono obbligatori. Questi campi non possono essere vuoti e devono essere compilati in forma HTML.

Campo regole di convalida
Nome Necessario. + Deve contenere solo lettere e spazi bianchi
E-mail Necessario. + Deve contenere un indirizzo email valido (with @ and .)
Sito web Opzionale. Se presente, deve contenere un URL valido
Commento Opzionale. Campo di input multi-linea (textarea)
Genere Necessario. Deve selezionare una

Nel capitolo 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 terranno messaggi di errore per i campi obbligatori. Abbiamo anche aggiunto un if else per ogni variabile $ _POST. Questo controlla se la variabile $ _POST è vuoto (with the PHP empty() funzione). Se è vuoto, un messaggio di errore è memorizzato in diverse variabili di errore, e se non è vuota, invia i dati di input dell'utente attraverso il test_input() funzione:

<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Name is required";
  } else {
    $name = test_input($_POST["name"]);
  }

  if (empty($_POST["email"])) {
    $emailErr = "Email is required";
  } 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 = "Gender is required";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}
?>

PHP - la visualizzazione dei messaggi di errore

Poi nel modulo HTML, aggiungiamo un po 'di script dopo ogni campo richiesto, che genera il messaggio di errore corretto in caso di necessità (cioè se l'utente tenta di inviare il modulo senza compilare i campi obbligatori):

Esempio

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

Name: <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>
Website:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">

</form>
Esempio Run »

Il passo successivo è quello di validare i dati di input, cioè "Does the Name field contain only letters and whitespace?" , E "Does the E-mail field contain a valid e-mail address syntax?" E, se compilato, "Does the Website field contain a valid URL?" .