No alternative, it's just a logo.
Self-hosted PHP form processor

Free Version
  • Self-hosted
  • Easy to install (just one file)
  • Contact-form code supplied
  • Process any form
  • Free friendly support
No alternative, it's just a button.
Pro Version Single License
(use on one website)

$29 one-time payment

Pro Version Multiple License
(use on unlimited sites)

$49 one-time payment

Pro Version
  • Self-hosted
  • Easy to install (just one file)
  • Contact-form code supplied
  • Process any form
  • Set required fields
  • Support for Google reCAPTCHA
  • Autoresponder
  • Attach file uploads
  • Upload files to your server
  • Block spam phrases
  • Block web addresses
  • Block rude words
  • Block gibberish (e.g. kkddsskkeeei)
  • Block one-word messages
  • Block messages with no punctuation
  • Block IPs
  • Auto redirect to "thank you" page
  • HTML email
  • Show errors on the form page
  • CSV output to attachment or file
  • See sender's IP address
  • Show date and time submitted
  • Create Message ID
  • Confirm email address
  • Check referrer
  • Set character set
  • Check for a set cookie
  • Ignore fields
  • Sort fields
  • No branding
  • Free upgrades for life
  • Free friendly support
diyform is a PHP script that processes website forms. A PHP script is simply a text file containing PHP code. The contents of the form are posted to diyform which processes it then sends you an email containing the submitted form data. It is usually used to process contact forms but it will process any form.

Self-hosted

diyform is self-hosted (DIY), which means you do not need to rely on a third-party to process (handle) the form. There are no limits to the number of forms you can process or the number of emails you can receive. You host the script yourself. Typically you would just upload it to your webspace in the same directory that your form page is in. This gives you complete control over your form and its processing.

Easy to install

diyform consists of just one PHP file (diyform.php). The minimum you need to do is add your email address to it and upload it to your webspace. Includes step-by-step instructions written in plain English. Just open the file in a text editor to read the instructions and edit it.

Contact-form code supplied

The script includes code for a contact form (the same one as the demo on this page). It's just a few lines of code that you copy and paste into the webpage that you want the form to appear on. The script itself doesn't make forms.

Process any form

The script will process any form. If you currently have a form on your website, you can use diyform to process it. You just change the action of the form to point to the diyform script. Instructions in the script for this.

Minimum requirements

Linux operating system like Ubuntu, CentOS etc. Any version of PHP (dating back to 5.3.0 from 2009). The PHP mail() function needs to be working (it is by default).

Free friendly support

Any questions, just give us a shout!

Pro version features

All of these features are optional

Set required fields

You can set which form fields are required. By default the "email" field is a required field. If a required field is empty, the script will issue an error and will not send an email. If there are no required fields set, the script will not permit a blank form to be sent.

Support for Google reCAPTCHA

You can display a Google reCAPTCHA v2 "I'm not a robot" checkbox on your form (see this demo). This will prevent bots from submitting your form. To use reCAPTCHA you will need a Google account to get a site key and a secret key. Full instructions in the script for this. You can also see the instructions in the support section, here: How to install Google reCAPTCHA

Autoresponder

The autoresponder sends an automated email to the visitor after they have submitted the form. The autoresponse is a default message that also includes the submitted form data. You can customize the message that is sent. You can also attach a file to the autoresponse. You can attach any type of file. This means a visitor can submit your form then seconds later get a response with a file attached to it.

Attach file uploads

If your form has a file upload button and your visitor uploads a file, the script will automatically detect this and attach the file to the email it sends you. There is no limit to the number of files that can be uploaded and attached. You can upload any type of file. You need to code your form to allow file uploads. There are instructions for this in the script. You can block specified file types from being uploaded, also you can specify the only file type you will allow to be uploaded. You can also set a maximum file size for uploaded files.

Upload files to your server

As an alternative to attaching uploaded files to the email the script sends you, you can save the files on your server.

Block spam phrases

You can block spam phrases that are submitted on the form. You can make your own list of words to block or you can use a default list that has been generated from years of analysing spam emails.

Block web addresses

You can block web addresses that are submitted on the form. Very often a spam message will contain "https://" so you can block any messsage that contains "https://" or you can specify an address to block.

Block rude words

You can block rude words, or any word or phrase or string of characters. You can make your own list of words to block or you can use the default list.

Block gibberish

You can block gibberish "words" like, for example, "kkddsskkeeei". Such words frequently appear on messages from bots. The script looks for a series of consecutive vowels or consonants that wouldn't appear in a proper word and issues an error if one is found.

Block one-word messages

You can block messages that only contain one word. Frequently a bot might hit a form with just one word. It is unlikely a genuine visitor would send a message containing only one word.

Block messages with no punctuation

You can block messages that don't contain any punctuation. Bots sometimes hit forms with strings of characters or words that don't contain any puctuation.

Block IPs

You can block messages from IP addresses that you specify. You can block any number of IP addresses or range of addresses. The default error message will state that the IP address is blocked. You can edit this message if you do not wish to show that the address is blocked.

Auto redirect to "thank you" page

You can automatically redirect your visitor to a "thank you" or "message received" page after they have successfully submitted the form. You can redirect the visitor to any page on your website, or to any page on any website. If you are redirecting to a page on your own website, you can show submitted form values on that page.

HTML email

By default the script sends emails in plain text. You can configure it to send an HTML email. The default email message shows the form data in a table. You can use an email template to style the email exactly as you want it.

Show errors on the form page

By default the script outputs any errors directly to screen but you can configure it to autoredirect to the form page and show the errors there. This makes for a better user experience as it appears to the user that they haven't left the page. To show the errors on the form page you need to add some code to the page, which the script can't do for you (it can't write to a page on your website). Full instructions in the script for this. You can also see the instructions on the support section here

CSV output to attachment or file

You can configure the script to generate a CSV (Comma Separated Value) file containing the submitted form data. The header row of the file is the form field names. The row below that is the submitted form data. You can have the file attached to the email you get from the script or alternatively the script can upload the file to your server. If you are uploading the file to your server, a new row will be written for every form submitted, so the file accumulates submitted form data.

See sender's IP address

If this option is enabled, the email you get from the script will have the visitor's IP address shown at the bottom. If you have configured the script to send an autoresponse, the visitor's IP address is not shown in the autoresponse email.

Show date and time submitted

This option will show the date and time the form was submitted, in the body of the email. It will also show in the autoresponse and the generated CSV file (if you have them enabled). It is particularly useful to show it in the CSV file, as otherwise you wouldn't know when the message was sent.

Create Message ID

You can create a message ID which can be used to identify the form submission.

Confirm email address

You can use this option in conjunction with two email inputs on a form, whereby the visitor enters their email address then enters it again to confirm it. The script will check that both inputs match.

Check referrer

Check for a referrer (referer) header. This will be present if a human submits your form but might not be if a bot hits your form.

Set character set

This is the character set used by the script. The default is UTF-8, which should be good for practically all situations.

Check for a set cookie

If enabled, the script will check for a cookie that has been set on the form page. You need to write the code yourself to set the cookie (it's just one line). Instructions in the script for it. This is quite a useful feature as not all spam bots will collect and present the cookie.

Ignore fields

The script can be configured to ignore certain form fields that you specify, and will not include them in the email that it sends you. Typically this might be a "submit" field.

Sort fields

You can configure the order of the form fields shown in the email from the script. Usually the order will be the same as it is on the form but that depends on how the form is written, so you can change the order if need be.

No branding

There's no branding on the pro version.

Free upgrades for life

Your purchase is a one-time purchase. You purchase the script outright, it is not a subscription. You get free upgrades for life. When you make your purchase you get an automated email with a link to the download page to download the script. You can download the script (and any upgrade) at any time. Download page is here

Comes with code to make this contact form

Name

Email

Message

Form is a demo, it won't send an email.