PHP formulier validatie - verplichte velden
- Vorige pagina PHP Formulier Validatie
- Volgende pagina PHP Formulier URL/E-mail
Dit hoofdstuk toont hoe je verplichte invoervelden maakt en de foutmeldingen maakt die nodig zijn als dat nodig is.
PHP - invoervelden
Uit de valideringsregels in het vorige hoofdstuk zien we dat de velden "Naam", "E-mail" en "Geslacht" verplicht zijn. Deze velden mogen niet leeg zijn en moeten worden ingevuld in het HTML-formulier.
Veld | Valideringsregels |
---|---|
Naam | Verplicht. Deze moet letters en spaties bevatten. |
Verplicht. Deze moet een geldig e-mailadres bevatten (inclusief @ en .). | |
Website | Optioneel. Als ingevuld, moet deze een geldige URL bevatten. |
Opmerking | Optioneel. Meervoudige invoervelden (tekstvakken). |
Geslacht | Verplicht. Een keuze moet worden gemaakt. |
In het vorige hoofdstuk waren alle invoervelden optioneel.
In de onderstaande code hebben we enkele nieuwe variabelen toegevoegd: $nameErr, $emailErr, $genderErr en $websiteErr. Deze foutvariabelen zullen de foutmeldingen van de aangevraagde velden opslaan. We hebben ook een if else-statement toegevoegd voor elke $_POST-variabele. Deze statement controleert of de $_POST-variabele leeg is (via de PHP-functie empty()). Als deze leeg is, wordt de foutmelding opgeslagen in verschillende foutvariabelen. Als deze niet leeg is, wordt de gebruikersinput verzonden via de functie test_input():
<?php}} // Variabelen definiëren en lege waarden instellen $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Naam is vereist"; } else { $name = test_input($_POST["name"]); } if (empty($_POST["email"])) { $emailErr = "E-mail is vereist"; } 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 = "Geslacht is vereist"; } else { $gender = test_input($_POST["gender"]); } } ?>
PHP - Foutmeldingen weergeven
In HTML-formulieren voegen we een beetje script achter elk gevraagd veld. Als nodig, wordt een passende foutmelding gegenereerd (als de gebruiker probeert een formulier in te dienen zonder een vereist veld in te vullen):
Voorbeeld
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> Naam: <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> <label>Opmerking: <textarea name="comment" rows="5" cols="40"></textarea></label> <br><br> Geslacht: <input type="radio" name="gender" value="female">Vrouw <input type="radio" name="gender" value="male">Man <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Indienen"> </form>
Volgende is de validatie van de ingevoerde gegevens, namelijk 'Is het 'Name'-veld alleen gevuld met letters en spaties?', en 'Bevat het 'E-mail'-veld een geldige e-mailadres syntaxis?', en als het 'Website'-veld is ingevuld, 'Bevat dit veld een geldige URL?'.
- Vorige pagina PHP Formulier Validatie
- Volgende pagina PHP Formulier URL/E-mail