PHP -vorms - Vereiste velde
Hierdie hoofstuk wys hoe om invoervelde vereis te maak en foutboodskappe te skep indien nodig.
PHP - Vereiste velde
Uit die valideringsreëlstabel op die vorige bladsy sien ons dat die "Naam", "E-pos" en "Geslag" velde vereis word. Hierdie velde kan nie leeg wees nie en moet in die HTML-vorm ingevul word.
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 die vorige hoofstuk was alle invoervelde opsioneel.
In die volgende kode het ons 'n paar nuwe veranderlikes bygevoeg: $nameErr, $emailErr, $genderErr en $websiteErr. Hierdie foutveranderlikes sal foutboodskappe vir die vereiste velde bevat. Ons het ook 'n if else
stelling bygevoeg vir elke $_POST veranderlike. Dit kontroleer of die $_POST-veranderlike leeg is (met die PHP- empty()
funksie). As dit leeg is, word 'n foutboodskap in die verskillende foutveranderlikes gestoor, en as dit nie leeg is nie, stuur dit die gebruiker se invoerdata deur die test_input()
funksie:
<?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 - Wys die foutboodskappe
Dan in die HTML-vorm voeg ons 'n klein skrif by na elke vereiste veld, wat die korrekte foutboodskap genereer indien nodig (dit is as die gebruiker probeer om die vorm in te dien sonder om die vereiste velde in te vul):
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>
Die volgende stap is om die invoerdata te bekragtig, dit is "Bevat die Naam-veld slegs letters en spasie?", en "Bevat die E-pos-veld 'n geldige e-posadressintaksis?", en indien ingevul, " Bevat die webwerf-veld 'n geldige URL?".