PHP-Contact-Us-Script

PHP contact-us script runs without modification. It detects the domain and emails all data of the contact-us form. This PHP script is used to send contact-us form data to the webmaster, It is simple and runs without modification.

Run out-of-box PHP contact-us script, it does not need modification, it will detect the domain and send an email containing the contact message to info@exmple.com whatever fields are in your form; it will detect them and send the form data with email.

Read PHP Contact Us Script on our blog

Arabic version of this article

PHP Contact Us Script on CodeProject

What is New in PHP Contact Us Script

Introduction

Run out-of-box PHP contact-us script, it does not need modification, it will detect the domain and send an email containing the contact message to info@exmple.com whatever fields are in your form; it will detect them and send the form data by email.

System requirements

Background

Lots of Contact Us scripts are available over the Internet. Other scripts need modification of the PHP file before use while this script will run directly out of the box. This script is very useful to those who do not know PHP and to beginners of PHP.

Using the Code

``` ### Fields Names Use `from_email`, `from_name`, `subject`, `message`, and `captcha` as main fields' names in your form. ### Captcha If you don’t wish to use a captcha, then change the 1st line of the ‘config.php’ code to be as follows: ```php $captcha = false; ``` If you wish to use a captcha, then no change is needed and the 1st line of the ‘config.php’ code will be: ```php $captcha = true; ``` If you need to modify the form; please note that we use a captcha, include the following in your form: ```html
Enter the code above here:
``` ### Thank you URL Put your own `$thank_you_url` in the 2^nd^ line of the code. What Does This Script Do? ------------------------- * Check the referrer page and stop the script if it is called directly: ```php $REFERER = $_SERVER['HTTP_REFERER']; if(!preg_match("@^http:\/\/(www\.)?$domain\/@",$REFERER)){ die("This page can't be call directly"); } ``` * Validate user email and user name to prevent injecting the wrong command in the header parameter of the mail() function: ```php if(!$from_email) $from_email = "web_page@$domain"; if (!filter_var($from_email, FILTER_VALIDATE_EMAIL)) { $Err .= 'Invalid email format
'; $from_email = "web_page@$domain"; } ``` * Validate the subject and encode it if needed to prevent send failure: ```php if ($subject && !preg_match('/^[A-Za-z ]+$/',$subject)){ $subject = "=?UTF-8?B?".base64_encode($subject)."?="; } ``` * Store the captcha in session and compare it with the variable * Seek all posted variables ```php foreach ($_POST as $key => $value) { if ( strpos( strtolower( $key ), 'email' ) !== false ) { $value = filter_var( $value, FILTER_SANITIZE_EMAIL ); } else { $value = filter_var( $value, FILTER_SANITIZE_STRING ); } $value = htmlspecialchars( $value ); $key = filter_var( $key, FILTER_SANITIZE_STRING ); $key = htmlspecialchars( $key ); $value = htmlspecialchars($value); $message_html .= "

$key

$value

"; } ``` * Send the message in Html UTF-8 format to be compatible with most languages * Redirect to thank you URL ```php header('Location: '. $thank_you_url); ``` PHP Mailing Technique --------------------- There are lots of mailing techniques in PHP; PEAR Mail, PHP Mailer, and a mail function. However, we just use the mail function as it is common and simple. PHP Email Validation -------------------- ### PHP FILTER\_SANITIZE\_EMAIL Filter Remove all illegal characters from an email address ```php $from_email = filter_var($from_email, FILTER_SANITIZE_EMAIL); ``` ### PHP FILTER\_VALIDATE\_EMAIL Filter Check if the variable \$email is a valid email address ```php if (!filter_var($from_email, FILTER_VALIDATE_EMAIL)) {                     $Err .= 'Invalid email format
';                $from_email = "web_page@$domain"; } ``` ### Validate Email in PHP using a regular expression: ```php $pattern = '/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/'; if(!preg_match($pattern, $from_email)){ $Err .= 'Invalid email format
';                $from_email = "web_page@$domain"; } ```