Simple Form to Email PHP Contact Form
Below you can find a basic website form using only HTML (for the form) and PHP for the form processing.
Along-side the HTML form you will find a basic PHP script which will capture the form submissions and send the form contents to your email address.
The form we provide below is a "bare-bone" version. This will allow you to edit the form to fit with your own website design. You could edit the form in dreamweaver, HTML-Kit, iweb or any other HTML editor of your choice.
Basic website form HTML
Below is the HTML form sample. As we mentioned above, you can edit the style of this to match your websites design.
File Name: contactform.htm (you can change the filename to anything you like)
<
form
name
=
"contactform"
method
=
"post"
action
=
"send_form_email.php"
>
<
table
width
=
"450px"
>
<
tr
>
<
td
valign
=
"top"
>
<
label
for
=
"first_name"
>First Name *</
label
>
</
td
>
<
td
valign
=
"top"
>
<
input
type
=
"text"
name
=
"first_name"
maxlength
=
"50"
size
=
"30"
>
</
td
>
</
tr
>
<
tr
>
<
td
valign
=
"top"
">
<
label
for
=
"last_name"
>Last Name *</
label
>
</
td
>
<
td
valign
=
"top"
>
<
input
type
=
"text"
name
=
"last_name"
maxlength
=
"50"
size
=
"30"
>
</
td
>
</
tr
>
<
tr
>
<
td
valign
=
"top"
>
<
label
for
=
"email"
>Email Address *</
label
>
</
td
>
<
td
valign
=
"top"
>
<
input
type
=
"text"
name
=
"email"
maxlength
=
"80"
size
=
"30"
>
</
td
>
</
tr
>
<
tr
>
<
td
valign
=
"top"
>
<
label
for
=
"telephone"
>Telephone Number</
label
>
</
td
>
<
td
valign
=
"top"
>
<
input
type
=
"text"
name
=
"telephone"
maxlength
=
"30"
size
=
"30"
>
</
td
>
</
tr
>
<
tr
>
<
td
valign
=
"top"
>
<
label
for
=
"comments"
>Comments *</
label
>
</
td
>
<
td
valign
=
"top"
>
<
textarea
name
=
"comments"
maxlength
=
"1000"
cols
=
"25"
rows
=
"6"
></
textarea
>
</
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"2"
style
=
"text-align:center"
>
<
input
type
=
"submit"
value
=
"Submit"
>
</
td
>
</
tr
>
</
table
>
</
form
>
The PHP Code which captures and Emails your website form
The PHP code below is very basic - it will capture the form fields specified in the HTML form above (first_name, last_name, email, telephone and comments). The fields are then sent off to your email address in plain text.
Note: You need to edit 2 parts of the script below. You need to tell it your email address (this will not be available for anyone to see, it is only used by the server to send your email). You can also specify an email subject line (or just leave the one which is there).
File Name: send_form_email.php (you must use this filename exactly)
<?php
if
(isset(
$_POST
[
'email'
])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to
=
"you@yourdomain.com"
;
$email_subject
=
"Your email subject line"
;
function
died(
$error
) {
// your error code can go here
echo
"We are very sorry, but there were error(s) found with the form you submitted. "
;
echo
"These errors appear below.<br /><br />"
;
echo
$error
.
"<br /><br />"
;
echo
"Please go back and fix these errors.<br /><br />"
;
die
();
}
// validation expected data exists
if
(!isset(
$_POST
[
'first_name'
]) ||
!isset(
$_POST
[
'last_name'
]) ||
!isset(
$_POST
[
'email'
]) ||
!isset(
$_POST
[
'telephone'
]) ||
!isset(
$_POST
[
'comments'
])) {
died(
'We are sorry, but there appears to be a problem with the form you submitted.'
);
}
$first_name
=
$_POST
[
'first_name'
];
// required
$last_name
=
$_POST
[
'last_name'
];
// required
$email_from
=
$_POST
[
'email'
];
// required
$telephone
=
$_POST
[
'telephone'
];
// not required
$comments
=
$_POST
[
'comments'
];
// required
$error_message
=
""
;
$email_exp
=
'/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'
;
if
(!preg_match(
$email_exp
,
$email_from
)) {
$error_message
.=
'The Email Address you entered does not appear to be valid.<br />'
;
}
$string_exp
=
"/^[A-Za-z .'-]+$/"
;
if
(!preg_match(
$string_exp
,
$first_name
)) {
$error_message
.=
'The First Name you entered does not appear to be valid.<br />'
;
}
if
(!preg_match(
$string_exp
,
$last_name
)) {
$error_message
.=
'The Last Name you entered does not appear to be valid.<br />'
;
}
if
(
strlen
(
$comments
) < 2) {
$error_message
.=
'The Comments you entered do not appear to be valid.<br />'
;
}
if
(
strlen
(
$error_message
) > 0) {
died(
$error_message
);
}
$email_message
=
"Form details below.\n\n"
;
function
clean_string(
$string
) {
$bad
=
array
(
"content-type"
,
"bcc:"
,
"to:"
,
"cc:"
,
"href"
);
return
str_replace
(
$bad
,
""
,
$string
);
}
$email_message
.=
"First Name: "
.clean_string(
$first_name
).
"\n"
;
$email_message
.=
"Last Name: "
.clean_string(
$last_name
).
"\n"
;
$email_message
.=
"Email: "
.clean_string(
$email_from
).
"\n"
;
$email_message
.=
"Telephone: "
.clean_string(
$telephone
).
"\n"
;
$email_message
.=
"Comments: "
.clean_string(
$comments
).
"\n"
;
// create email headers
$headers
=
'From: '
.
$email_from
.
"\r\n"
.
'Reply-To: '
.
$email_from
.
"\r\n"
.
'X-Mailer: PHP/'
. phpversion();
@mail(
$email_to
,
$email_subject
,
$email_message
,
$headers
);
?>
<!--
include
your own success html here -->
Thank you
for
contacting us. We will be in touch with you very soon.
<?php
}
?>
Save the files above. Once you edit the form to fit with your design, you are ready to put it live.
You should consider anti-spam measures. The example code shown here does not address spam prevention.