ContactForm

ContactForm is the script that powers our Contact Page.  One reason for having a contact form on your site instead of just listing your email address is that the contact form hides your email address, saving you from the deluge of spam email that you would receive by listing your email address on your website.

But ContactForm can also serve as a general-purpose data submission form, enabling improved communication with your visitors in many different scenarios.  For example you could configure it for use as an Estimate Request System, or a Trouble Ticket Submission system, etc.

Features

  • Supports unlimited custom form fields, including drop-down boxes
  • Can send messages to multiple recipients
  • Supports a "Recipient" drop-down menu so your visitors can choose a particular person/department for their message (and the destination email addresses are hidden from the visitor)
  • Supports sendmail- and SMTP-based sending, including SMTP authentication
  • Supports required fields, for any fields that you decide must be filled in before the form will allow the user to submit it
  • Logs all messages to a text file (in addition to emailing them to you, of course) including sender's IP address, hostname, and user-agent
  • Enforces a built-in delay (defaults to 20 seconds) between sends, to prevent spambots from hammering on it
  • Single-file easy-to-install Perl CGI script
  • Works on virtually all servers (Apache, IIS, OS X Server)

License

ContactForm is licensed under the following simple terms, as stated at the top of the script itself:

This program is the copyrighted work of Encodable Industries.  Redistribution is prohibited, and copies are permitted only for backup purposes.  You are free to modify the program for your own use, but you may not distribute any modified copies of it.

Buy

To get ContactForm, please choose your license type below.

ContactForm Full Version:
Personal Website License: 1-site
$19.99
add to cart
Non-Personal Website License: 1-site
$39.99
add to cart
Non-Personal Website License: 3-site
$89.99
add to cart
Non-Personal Website License: 10-site
$249.99
add to cart
Instant credit card payments through PayPal.
No sign-up required!

* A Non-Personal Site is one that is commercial, academic, organizational, community, government, etc.

Instructions

Want us to install it for you?  Just purchase our ContactForm Installation Package.  We also provide customization and integration services -- just ask!

Open contact_prefs.cgi in a text editor and adjust the PREFs as necessary to suit your server and your setup.

Note: if you are using Microsoft Windows, and when you open the file, the lines all appear to be crunched together, try opening it in Wordpad (not Word) instead.  In Wordpad, save the file; this should fix the line-endings so the file's contents appear correctly in other editors like Notepad.

Note II: if you are running your server on Windows (in which case you'll need to install a copy of Perl, probably ActivePerl), then you'll need to change the first line of the script from #!/usr/bin/perl to either #!perl or #!c:\path\to\perl.exe

On your website:

  1. Put the script at /cgi-bin/contact.cgi.  You could also name it contact.pl (IIS users may need to) or in fact, whatever.cgi or whatever.pl.  And put the preferences file at /cgi-bin/contact_prefs.cgi.
  2. Set the permissions on the script (that is, chmod it) to world-readable and world-executable, that is, a+rx or mode 0755.  Do NOT use 0777.
  3. Create the directory /cgi-bin/cfdata/ and set the permissions on it to world-readable, -writable, and -executable, that is, a+rwx or mode 0777.
  4. (Optional; recommended) If your server supports SSI (via .shtml files) and/or PHP, and you want to be able to use yoursite.com/contact/ instead of yoursite.com/cgi-bin/contact.cgi to access your contact form, then do this:

    SSI (almost all servers support this):
    Create /contact/index.shtml and put this line in it:
    <!--#include virtual="/cgi-bin/contact.cgi?$QUERY_STRING" -->

    If you're running Apache, you may also have to put these lines into your .htaccess file:

    DirectoryIndex index.shtml index.php index.html index.htm
    Options +Includes
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml

    PHP:
    Create /contact/index.php and put this line in it:
    <?PHP virtual("/cgi-bin/contact.cgi"); ?>

    PHP users, if your server doesn't seem to be passing the query-string on to the CGI script, try adding either ?$_SERVER['QUERY_STRING'] or just ?$QUERY_STRING after the .cgi in contact.cgi, within the virtual() call.  Also, if the virtual() call doesn't work on your server, try using include() instead, possibly with the full URL (including http:// and domain name) to the script.

Support

If you are getting an Internal Server Error message when you try to access ContactForm on your server, please try the solutions on our Internal Server Error page.

If you're getting errors about missing Perl modules, please see our instructions on how to install Perl modules.

If you still need help, you can contact us.

ChangeLog

v1.55 (20070507):

  • ContactForm can now include your site's default header and footer files in its output.
  • Bugfix: %serial_number% was not getting replaced with the actual serial number in the Subject: line of the emails.

v1.54 (20070315):

  • The CSS ID on the main wrapper element is now adjustable via the preferences, so that a single site can run multiple copies of ContactForm for different purposes and can still style them from the same stylesheet.

v1.53 (20070128):

  • Added support for drop-down input elements.
  • Added support for user-selectable recipients based on drop-down lists, where the user sees an option like "Sales", "Support", etc (all configurable) and then ContactForm routes those to your specified recipient addresses.  The end-user cannot see the email addresses on the website, not even by looking at the source code, because they aren't displayed or used client-side at all.
  • Added support for a static sender address and a static subject line.
  • Added support for "required" fields, where the form will not submit until the user enters a value; also includes email address format verification for email fields.

v1.52 (20070120):

  • Added support for unlimited custom form fields.

v1.51 (20061224):

  • Names of log files are now adjustable.

v1.50 (20061121):

  • Initial public release, after about 5 years of use on various Encodable client websites.