PHP -formulieren - Verplichte velden
Dit hoofdstuk laat zien hoe u invoervelden verplicht maakt en indien nodig foutmeldingen maakt.
PHP - Verplichte velden
Uit de tabel met validatieregels op de vorige pagina 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.
Field | Validation Rules |
---|---|
Name | Required. + Must only contain letters and whitespace |
Required. + Must contain a valid email address (with @ and .) | |
Website | Optional. If present, it must contain a valid URL |
Comment | Optional. Multi-line input field (textarea) |
Gender | Required. Must select one |
In het vorige hoofdstuk waren alle invoervelden optioneel.
In de volgende code hebben we enkele nieuwe variabelen toegevoegd: $nameErr, $emailErr, $genderErr en $websiteErr. Deze foutvariabelen bevatten foutmeldingen voor de vereiste velden. We hebben ook een if else
statement toegevoegd voor elke $_POST variabele. Dit controleert of de $_POST-variabele leeg is (met de PHP- empty()
functie). Als het leeg is, wordt een foutmelding opgeslagen in de verschillende foutvariabelen en als het niet leeg is, stuurt het de gebruikersinvoergegevens via de test_input()
functie:
<?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 - Geef de foutmeldingen weer
Vervolgens voegen we in het HTML-formulier een klein script toe na elk verplicht veld, dat indien nodig het juiste foutbericht genereert (dat wil zeggen als de gebruiker het formulier probeert in te dienen zonder de vereiste velden in te vullen):
Voorbeeld
<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
<input type="radio" name="gender" value="other">Other
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
De volgende stap is het valideren van de invoergegevens, dat wil zeggen "Bevat het veld Naam alleen letters en spaties?", en "Bevat het veld E-mail een geldige syntaxis van het e-mailadres?", en indien ingevuld, " Bevat het veld Website een geldige URL?".