PHP
5 Forms - Required Fields
PHP
- Required Fields
From the
validation rules table on the previous page, we see that the "Name",
"E-mail", and "Gender" fields are required. These fields
cannot be empty and must be filled out in the HTML form.
Field Validation Rules
Name Required. + Must only contain letters and
whitespace
E-mail 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 the
previous chapter, all input fields were optional.
In the
following code we have added some new variables: $nameErr, $emailErr,
$genderErr, and $websiteErr. These error variables will hold error messages for
the required fields. We have also added an if else statement for each $_POST
variable. This checks if the $_POST variable is empty (with the PHP empty()
function). If it is empty, an error message is stored in the different error
variables, and if it is not empty, it sends the user input data through the
test_input() function:
<?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 -
Display The Error Messages
Then in the
HTML form, we add a little script after each required field, which generates
the correct error message if needed (that is if the user tries to submit the
form without filling out the required fields):
Example
<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>
0 comments: