I have a contact.php page working on my live website, but even when the visitor enters incomplete text into the name, email, or message fields, the form sees them as correct and shows a success message.
How can I specify things like name must be at least 6 letters, email must have the @ symbol and a proper .com, .org, etc. ending; and message must be at least 20 letters long.
PHP SCRIPT
<?php
if ($_POST['submit']) {
if (!$_POST['firstname']) {
$error="<br/>- Please enter your first name";
}
if (!$_POST['lastname']) {
$error="<br/>- Please enter your last name";
}
if (!$_POST['email']) {
$error.="<br/>- Please enter your email";
}
if (!$_POST['message']) {
$error.="<br/>- Please enter a message";
}
if (!$_POST['check']) {
$error.="<br/>- Please confirm you are human";
}
if ($error) {
$result='<div class="alert alert-danger" role="alert">
<strong>Whoops, there is an error</strong>. Please correct the following: '.$error.'</div>';
} else {
mail("myname@mywebsite.com",
"Contact message",
"Name: ".$_POST['name']."
Email: ".$_POST['name']."
Message: ".$_POST['message']);
{
$result='<div class="alert alert-success" role="alert">Thank you, I\'ll be in touch shortly. </div>';
}
}
}
?>
#HTML CODE#
<form method="post" role="form">
<div class="row">
<div class="col-md-3"></div>
<div class="contact-icon">
<i class="fas fa-user"></i>
</div>
<div class="form-inline">
<div class="col-md-9 form-group">
<label for="name">your name</label>
<span class="fieldSpan">
<input type="text"
name="name"
id="input-field-name"
class="form-control"
placeholder="your name"
value="<?php echo $_POST['name']; ?>">
</div>
</div>
</div>
<div class="row">
<div class="col-md-3"></div>
<div class="contact-icon">
<i class="fas fa-envelope"></i>
</div>
<div class="form-inline">
<div class="col-md-9 form-group">
<label for="email">your email address</label>
<span class="fieldSpan">
<input type="email"
name="email"
id="input-field-email"
class="form-control"
placeholder="yourname@website.com"
value="<?php echo $_POST['email']; ?>">
</div>
</div>
</div>
<div class="row">
<div class="col-md-3"></div>
<div class="contact-icon">
<i class="fas fa-pencil-alt"></i>
</div>
<div class="form-inline">
<div class="col-md-9 form-group">
<label for="message">your message</label>
<span class="fieldSpan vertical-align:top">
<textarea name="message"
rows="5"
id="input-field-message"
class="form-control"
placeholder="your message">
<?php echo $_POST['message']; ?></textarea>
<br>
<br>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="checkbox">
<label>
<input type="checkbox"
name="check">
Check this box if you're human.
</label>
</div>
</div>
</div>
<div class="col-md-3"></div>
<div class="row">
<div class="col-md-9">
<input type="submit"
name="submit"
class="btn btn-secondary"
value="send message"/>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
<!-- ----------- SCRIPTS------------ -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>