PHP Simple Contact Form
This is a PHP script for a simple contact form.
<?php
/**
* Simple Contact Form
*
* This script shows an example contact form
* that validates the form values, alerts
* user to make any necessary changes,
* then sends the data to a specified recipient.
*
* You should include a captcha or honeypot to
* prevent spammers or bots from abusing the form.
*
* @author PHP Simple
* @website https://phpsimple.com
* @date August 2021
*/
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Check and clean the data submitted...
// Validate name field
if (empty($_POST["name"])) {
$err_name = "* Name is required."; // Display error if no value submitted
} else {
$name = make_safe($_POST["name"]); // Clean data and make sure it's valid
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$err_name = "* Only letters and white space allowed";
}
}
// Validate email field
if (empty($_POST["email"])) {
$err_email = "* Email is required."; // Display error if no value submitted
} else {
$email = make_safe($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$err_email = "Email entered is invalid";
}
}
// Validate message
if (empty($_POST["message"])) {
$err_msg = "* Message required."; // Display error if no value submitted
} else {
$msg = make_safe($_POST["message"]);
}
// If no errors found, send email
if (empty($err_name) && empty($err_email) && empty($err_msg)) {
// To
$to = "youremailaddress@example.com";
// Subject
$sub = "Contact Form Submission";
// Message
$msg = "
<html>
<head>
<title>Contact Form</title>
</head>
<body>
<p>You have received a message through your contact form.</p>
<table>
<tr>
<td>Name: </td>
<td>$name</td>
</tr>
<tr>
<td>Email: </td>
<td>$email</td>
</tr>
<tr>
<td>Message: </td>
<td>$msg</td>
</tr>
</table>
</body>
</html>
";
// Headers *** You MUST set the content type to send an HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From: <youremail@example.com>' . "\r\n";
// Send the email
mail($to,$sub,$msg,$headers);
$success = "<h3>Your message has been sent!</h3>";
}
}
// Make input safe - prevents hacking
function make_safe($value) {
$value = trim($value);
$value = stripslashes($value);
$value = htmlspecialchars($value);
return $value;
}
?>
<html>
<head>
<title>Example Contact Form</title>
</head>
<body>
<h1>Contact Us</h1>
<?php
if (!empty($success)) {
echo $success;
} else {
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<p><span class="error"><?php if (!empty($err_name)) echo $err_name; ?></span></p>
<p>Name: <input type="text" name="name" value="<?php if (!empty($name)) echo $name; ?>"></p>
<p><span class="error"><?php if (!empty($err_email)) echo $err_email; ?></span></p>
<p>Email: <input type="text" name="email" value="<?php if (!empty($email)) echo $email; ?>"></p>
<p><span class="error"><?php if (!empty($err_msg)) echo $err_msg; ?></span></p>
<p>Message: <textarea name="message" rows="5" cols="40"><?php if (!empty($msg)) echo $msg; ?>"</textarea></p>
<p><input type="submit" name="submit" value="Send"></p>
</form>
<?php } ?>
</body>
</html>