PHPFormMail - Classic







Form Configuration

The action of your form needs to point towards this script (obviously), and the method must be POST
 

FORM action="http://www.yourdomainname.com/phpmailer.php" method="POST">

Necessary Form Fields

There is only one form field that you must have in your form, for PHPFormMail to work correctly. This is the recipient field.
 

Field: recipient
Description: This form field allows you to specify to whom you wish for your form results to be mailed. Most likely you will want to configure this option as a hidden form field with a value equal to that of your e-mail address.
Syntax: <input type="hidden" name="recipient" value="something@domain.com">


 

Optional Form Fields
 

Field: subject
Description: The subject field will allow 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: WWW Form Submission
Syntax: If you wish to choose what the subject is:
<input type="hidden" name="subject" value="Your Subject">

To allow the user to choose a subject:
<input type="text" name="subject">


 

Field: email
Description: This form field will allow the user to specify their 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. If you want to require an email address with valid syntax, add this field name to the 'required' field. 

To send e-mail to more than one address, use commas to seperate the addresses.

Syntax: Single Recipient:
<input type="text" name="email" value="nobody@example.com">

Multiple Recipients:
<input type="text" name="email" value="nobody@example.com,nobody@example1.com">


 

Field: recipient_cc*
Description: This form field will allow you to carbon copy (CC) the the e-mail to the e-mail address listed. Use this only if you have the email field specified. This will cause two copies of the e-mail to be sent. The first to the address listed in the email field and the second to the address listed in the recipient_cc. 

To send e-mail to more than one address, use commas to seperate the addresses.

Syntax: Single Recipient:
<input type="text" name="recipient_cc" value="nobody@example.com">

Multiple Recipients:
<input type="text" name="recipient_cc" value="nobody@example.com,nobody@example1.com">


 

Field: recipient_bcc*
Description: This form field will allow you to blind carbon copy (BCC) the the e-mail to the e-mail address listed. To use this fields, you don't have to specify the email field. This will cause the e-mail to be sent but the recipients listed in the recipient_bcc without the recipients to see who it was sent to. 

To send e-mail to more than one address, use commas to seperate the addresses.

Syntax: Single Recipient:
<input type="text" name="recipient_bcc" value="nobody@example.com">

Multiple Recipients:
<input type="text" name="recipient_bcc" value="nobody@example.com,nobody@example1.com">


 

Field: realname
Description: The realname form field will allow the user to input their real name. This field is useful for identification purposes and will also be put into the From: line of your message header. 

Note: If realname does not exist as a field but firstname or lastname does, PHPFormMail will combine firstname and lastname to create the realname.

Syntax: <input type="text" name="realname">


 

Field: redirect
Description: If you wish to redirect the user 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 page.
Syntax: <input type="hidden" name="redirect" value="http://your.host.com/to/file.html">


 

Field: redirect_values
Description: This send the form results on to the redirect page (for further processing by your own script). You must specify redirect and/or missing_fields_redirect for this feature to work. NOTE: You must use the GET method for this feature to work.
Syntax: <input type="hidden" name="redirect_values" value="true">


 

Field: required
Description: You can now require for certain fields in your form to be filled in before the user can successfully submit the form. Simply place all field names that you want to be mandatory into this field. If the required fields are not filled in, the user will be notified of what they need to fill in, and a link back to the form they just submitted will be provided. 

To use a customized error page, see 'missing_fields_redirect

Syntax: If you want to require that they fill in the email and phone fields in your form, so that you can reach them once you have received the mail, use a syntax like: 

<input type="hidden" name="required" value="email,phone">


 

Field: sort
Description: There are three ways to sort the output of the form. 
  • Alphabetic*: An alphabetic listing based on the field names.
  • Reverse Alphabetic*: A reverse alphabetic listing based on the field names. 
  • Order: Allows you to specify the order that you would like the fields to be in. Note: If you have five form variables, and you only wish to move two of them to the begining of the e-mail and allow the others to stay in their natural order, you just need to specify the two variables. The remaining variables will be included in the e-mail.
Syntax: If you want to require that they fill in the email and phone fields in your form, so that you can reach them once you have received the mail, use a syntax like: 

For Alphabetic listings*:
<input type="hidden" name="sort" value="alphabetic">

For Reverse Alphabetic listings*:
<input type="hidden" name="sort" value="alphabetic">

For Order listings (This would list the fields in the order of: name, comment, email):
<input type="hidden" name="sort" value="order:name,comment,email">


 

Field: hidden*
Description: Allows you to hide the results of a field from the HTML output. The results will be replaced with (hidden) in the HTML output but will still appear in the e-mail you receive. Fields are comma separated.
Syntax: If you want to hide the results of the fields my_password and home_address, you would use syntax like: 

<input type="hidden" name="hidden" value="my_password,home_address">


 

Field: alias*
Description: Allows you to add a more user friendly name for the field. This user friendly name is only displayed in the HTML output and as no effect on the e-mail you receive. Format is fieldname=friendlyname and is comma separated.
Syntax: To add the alias of "E-mail Address" to the field of "email" and the alias of "First Name" to the field of firstname use: 

<input type="hidden" name="alias" value="email=E-mail Address,firstname=First Name">


 

Field: env_report
Description: Allows you to have Environment variables included in the e-mail message you receive after a user has filled out your form. Useful if you wish to know what browser they were using, what domain they were coming from or any other attributes associated with environment variables. Each enviroment variable is sepperated by a comma. The following is a short list of valid environment variables that might be useful: 
 
 
 
REMOTE_HOST - Sends the hostname making the request.
REMOTE_ADDR - Sends the IP address of the remote host making the request.
REMOTE_USER - If server supports authentication and script is protected, this is the username they have authenticated as. *This is not usually set.*
HTTP_USER_AGENT - The browser the client is using to send the request.

For more environmental variables, please see
http://hoohoo.ncsa.uiuc.edu/cgi/env.html

Remember to allow the enviromental variables in $valid_env.

Syntax: If you wanted to see the host making the request and the browser the user is using in your our e-mail , you would put the following into your form: 

<input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT">


 

Field: priority*
Description: priority allows you to modify the priority of the e-mail you will receive. 3 is normail priority for an e-mail (default) and 1 is the highest priority.
Syntax: If you wish to have the highest priority:
<input type="hidden" name="priority" value="1">

If you wish to have the lowest priority (normal):
<input type="hidden" name="priority" value="3">


 

Field: print_blank_fields
Description: print_blank_fields allows you to request that all form fields are printed in the return HTML and e-mail, regardless of whether or not they were filled in. PHPFormMail defaults to turning this off, so that unused form fields aren't e-mailed.
Syntax: If you want to print all blank fields:
<input type="hidden" name="print_blank_fields" value="true">


 

Field: title
Description: This form field allows you to specify the title and header that will appear on the resulting page if you do not specify a redirect URL.
Syntax: If you wanted a title of 'Feedback Form Results': 

<input type="hidden" name="title" value="Feedback Form Results">


 

Field: return_link_url
Description: This field allows you to specify a URL that will appear, as return_link_title, on the following report page. This field will not be used if you have the redirect field set, but it is useful if you allow the user to receive the report on the following page, but want to offer them a way to get back to your main page.
Syntax: <input type="hidden" name="return_link_url" value="http://your.host.com/main.html">


 

Field: return_link_title
Description: This is the title that will be used to link the user back to the page you specify with return_link_url. The two fields will be shown on the resulting form page as:
Syntax: <input type="hidden" name="return_link_title" value="Back to Main Page">


 

Field: missing_fields_redirect
Description: This form field allows you to specify a URL that users will be redirected to if there are fields listed in the required form field that are not filled in. This is so you can customize an error page instead of displaying the default.
Syntax: <input type="hidden" name="missing_fields_redirect" value="http://your.host.com/error.html">


 

Field: background
Description: This form field allow you to specify a background image that will appear if you do not have the redirect field set. This image will appear as the background to the form results page.
Syntax: <input type="hidden" name="background" value="http://your.host.xxx/image.gif">


 

Field: bgcolor
Description: This form field allow you to specify a bgcolor for the form results page in much the way you specify a background image.
Syntax: For a background color of White: 

<input type="hidden" name="bgcolor" value="#FFFFFF">


 

Field: text_color
Description: This field works in the same way as bgcolor, except that it will change the color of your text.
Syntax: For a text color of Black: 

<input type="hidden" name="text_color" value="#000000">


 

Field: link_color
Description: Changes the color of links on the resulting page. Works in the same way as text_color.
Syntax: For a link color of Red: 

<input type="hidden" name="link_color" value="#FF0000">


 

Field: vlink_color
Description: Changes the color of visited links on the resulting page. Works exactly the same as link_color.
Syntax: For a visited link color of Blue: 

<input type="hidden" name="vlink_color" value="#0000FF">


 

Field: alink_color
Description: Changes the color of active links on the resulting page. Works exactly the same as link_color.
Syntax: For a active link color of Blue: 

<input type="hidden" name="alink_color" value="#0000FF">


 

Field: gmt_offset*
Description: Allows you to specify your GMT offset (+/-) so the time reported in the e-mail will match your time zone. (Default is your servers time zone)
Syntax: To change the time into American EST: 

<input type="hidden" name="gmt_offset" value="-5">


 

Field: mail_newline*
Description: Allows you to specify the type of linebreak in your e-mail output. Only change if your e-mail is listed all on one line. 

1 \n (default)
2 \r\n
3 \r

Syntax: To change your linebreak to \r\n: 

<input type="hidden" name="mail_newline" value="2">


 

Field: css*
Description: Allows for the results/error page to link to a Cascading Style Sheet (css).
Syntax: To link to main.css: 

<input type="hidden" name="css" value="http://your.host.xxx/main.css">


 

Field: _regex*
Description: Allows for regular expression comparisons on form results. For a field to be checked, it must also be listed in required

To check a field, append _regex to the hidden field name. 

Note: This function uses eregi() so you must use postix regular expressions.

Syntax: To check that the date field is in propper date format: 

<input type="hidden" name="date_regex" value="$[0-9{4}-[0-9]{2}-[0-9]{2}$">

Any other form fields that appear in your script will be mailed back to you and displayed on the resulting page if you do not have the redirect field set. There is no limit as to how many other form fields you can use with this form, except the limits imposed by browsers and your server.
 
 

Additional Notes

Multiple Results

When using checkboxes and multiple selection lists, you'll need to add [] to the end of the name. When the [] is added, PHPFormMail can then properly process the field and print it out in a comma separated format.

Reserved Words

Here is the list of reserved words. Naming a field name any of the following could cause unexpected results:
recipient, subject, required, redirect, print_blank_fields, env_report, sort, missing_fields_redirect, title, bgcolor, text_color, link_color, alink_color, vlink_color, background, subject, title, link, css, return_link_title, return_link_url, recipient_cc, recipient_bcc, priority, redirect_values, hidden, alias



Donations

As you know, most of the software I release is free, and will always be free. Keep in mind that this donation page isn't for me to profit, it's to allow me to continue developing free software and to keep boaddrink.com for you, the user. Please remember that this software is free for you to download and use but that doesn't mean it's not worth anything. You can donate any amount of money you wish... from $1 to $1,000,000. While a million dollars would be nice don't be pressured, any amount helps, even one dollar.

If you wish to donate, please visit http://www.boaddrink.com/donate.php

Thanks,
Andrew Riley


Copyright 2002 Andrew Riley

Valid XHTML 1.0!