Simple, Effective PHP Form for Your Web Site
© 2005 Herman Drost
If you have been struggling to set up forms on your web site
using cgi, then definitely read this article. Installing a
simple PHP form is much easier and faster than installing a cgi
form and doesn't need any programming experience.
How does a PHP form work?
PHP is short for "PHP: Hypertext Preprocessor"
(originally called personal home page). It is a
server-side, cross-platform, HTML embedded scripting language.
A server side scripting language allows you to create dynamic
web pages. Web pages that have been enabled with PHP are
treated just the same as any other HTML page, and PHP even lets
you create and edit them the same way you would create and edit
your HTML pages.
This PHP form consists of 3 web pages, an html page, a PHP page
(PHP script) and a thank you page. You collect the visitors
information when he fills out the form on the html page. It is
then processed by the PHP script which resides on the server.
The visitor automatically receives a "thank you for
subscribing" message. The form results are returned from the
server to your email box.
Server requirements for your PHP form
Check with your web host you have PHP4 installed on your server
Most Unix servers do - if so you are in luck and ready to go.
How to create the simple PHP form
You will create a very simple, effective form in which you will
collect the name, email address and comments of your visitors.
The form results will be sent to your email address.
PHP Form in action.
1. Download the PHP script - once downloaded, copy and paste
the PHP code of
into notepad (not MS Word)
and save it as securemail.php
(not formmail.php - this will
make it a more secure form)
2. Edit Recipient Field -
the recipient field allows you
to specify to
whom you wish for your form results to be mailed. For
separate the email addresses with commas (",").
$recipient = "email@example.com,
Note: If you use this option you cannot use
recipient in your html form i.e.
type=hidden name="recipient" value="firstname.lastname@example.org">
If you already inserted
this in your html form, then simply delete it.
This will prevent spammers from harvesting your email
because it now can't be found on your html form.
3. Edit the referrers field - the only recommended field to edit
the script is the
"referers" field. This field defines the domains that allow
forms to reside on and use your securemail.php script. If you try
to put the form on another server, that is not the specified
domain or ip, you will receive an error message when someone
tries to fill it out.
ie: $referers = array ('ihost-websites.com','www.ihost-websites.com','126.96.36.199');
4. Upload the securemail.php script to the root directory
of your server
(same location as your index.html file).
Note: Make sure you
upload the php script in ASCII mode. This is
because it is a text file. You will get errors if you
upload it in binary mode.
5. Create your HTML form - create a web page (ie contact.htm)
that contains your html form (see example html form
6. Point the action of your form to the securemail.php script
downloaded in Step 1.
ie: <form name="form mail" method="post"
7. Add optional form fields
"subject field" - this allows you to specify the subject that
you wish to appear in the e-mail that is sent to you after this
form has been filled out. If you do not have this option turned
on, then the script will default to a message subject: "Form
ie: <input type=hidden name="subject" value="Form
"full name field" - this allows visitors to fill in their name.
This will help you to personalize your return email by
including their first and/or last names.
i.e: <input type=text name="fullname">
"email address field" - this allows you to specify your return
e-mail address. If you want to be able to return e-mail to your
user, I strongly suggest that you include this form field and
allow them to fill it in. This will be put into the From: field
of the message you receive. The email address submitted will be
checked for validity.
i.e: <input type=text name="email">
"comments field" - this allows visitors to add any comments in
your form. You could name this field anything you like.
ie: <textarea name="comments"></textarea>
"required field" - these are the required fields you want your
visitors to fill in before they can successfully submit the
form. If the required fields are not filled in, the visitor
will be notified of what they need to fill in, and a link back
to the form they just submitted will be provided.
ie: <input type=hidden name="required" value="fullname,email">
"redirect field" - if you wish to redirect the visitor to a
different URL, rather than having them see the default response
to the fill-out form, you can use this hidden variable to send
them to a pre-made HTML (ie thankyou.htm) page.
ie: <input type=hidden name="redirect"
"submit field" - this allows the visitor to submit the form
ie: <input type="submit" name="Submit" value="Submit">
8. Create a thank you page (thankyou.htm) - this web page will
automatically thank visitors for subscribing. Add your own
comments you wish them to receive. Upload this web page to your
Tip: Use your own domain name, email and IP address in the
Here's an example of a typical web page using the PHP form.
All the fields are included as was discussed above:
<body bgcolor="#FFFFFF" text="#000000"> <form name="form1"
<input type=hidden name="subject" value="Form Mail Results">
<input type=hidden name="required" value="fullname,email">
<input type=hidden name="redirect"
Name<br><input type=text name="fullname"><br>
Email<br> <input type=text name="email"><br>
<br> Comments<br> <textarea name="comments"></textarea> <br>
<br> <input type="submit" name="Submit" value="Submit">
9. Copy and paste this html form into your web page - name it
anything you like (ie contact.htm), then upload it to your
10. Test out your form - when you fill out the form, you should
immediately receive the reply from your thankyou.htm page
and receive the form results in your email box.
Conclusion - you now have a fully functional and flexible PHP
form on your web site to collect visitor information. You can
add more fields to the form if necessary. You may also add any
number of HTML forms to your web site and still use the same
- PHP Form Forum
101 Highly Effective
Strategies to Promote Your Web Site