Reputation: 53
I have a form that validates the email address and I want to be able to place echo '<p class="error">Please enter a valid email address!</p>';
anywhere on the web page without having to put the validation process within the html?
Or should I include the validation process in the HTML form?
Here is the php code.
if (preg_match ('/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/', $_POST['email'])) {
$email = mysqli_real_escape_string($mysqli, strip_tags($_POST['email']));
} else {
echo '<p class="error">Please enter a valid email address!</p>';
}
Upvotes: 0
Views: 598
Reputation: 157828
Slightly different
if (preg_match ('/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/', $_POST['email'])) {
$email = mysqli_real_escape_string($mysqli, strip_tags($_POST['email']));
} else {
$error = 'Please enter a valid email address!';
}
Now you can print your $error anywhere on your page
Okay, make it this:
if (preg_match ('/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/', $_POST['email'])) {
$email = mysqli_real_escape_string($mysqli, strip_tags($_POST['email']));
echo "valid ";
} else {
$error = 'Please enter a valid email address!';
echo "invalid ";
}
echo $error;
exit;
What would it say now?
Another example:
<?php
$error="";
if (preg_match ('/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/', $_POST['email'])) {
$email = mysqli_real_escape_string($mysqli, strip_tags($_POST['email']));
} else {
$error = 'Please enter a valid email address!';
$email=htmlspecialchars($email);
}
?>
<html>
<form>
<?php if ($error): ?>
<p class="error"><?php echo $error?></p>
<?php endif ?>
Enter email: <input type="text" name="email" value="<?php echo $email?>">
<input type="submit">
</form>
</html>
Now it works?
Upvotes: 2