AllHostGuide.com: How to Install a CGI Script and Increase Web Site Interactivity

Choosing a web host is like choosing a place to eat, you want quality food with good, honest service.


If you are anything like me, you'd probably like to have a website on the Internet but you just have no idea how to go about it. All this talk of web hosting, bandwidth, disc space, and other jargon can cause one to say, "This is too complicated and technical, I just wanted to have a place to put all of my favorite skateboarding photos, cool information on ramp designs, and the best places to skate!" To get a website on the Web you have to go through a web host. The question is how do you find the web host for you?

If you type ‘web host' into your search engine like Google you will get thousands of sites. Hit on one of these and like any product on the market you will see all sorts of persuasive propaganda to incite you to use their company; that is if you can decipher any of the technical jargon that only computer-heads can comprehend. Some web hosts offer free business cards with an account; some probably offer free watches...like all consumer industries you the buyer must beware.

I'm a writer so I'll use the analogy of a writer's journal. The journal I like must not be too big or small in book size. It also must have a good amount of space allocated to each day, again not a whole page but not just a few lines. Of course I also want it to be cheap but of a good quality that won't fall apart while I'm using it, and I hope it would last for posterity. I just want the diary, some nice pictures in it are O.K. but unnecessary especially if it adds to the price.


More...

How to Install a CGI Script and Increase Web Site Interactivity


You may have delayed cgi script installation due the apparently complex process. Well, I avoided it also for several years, however if you want to increase your web site's interactivity it's a necessity to know how to do it. It's not hard to learn and you don't have to be a programmer.

What is CGI ?

Common Gateway Interface or CGI is a program that can interact with an html form on your web site, and processes the results on your server using a cgi script. The result generated is a dynamic web page. The cgi script is written in a language called PERL ("practical extraction and reporting language").

Uses of CGI scripts

CGI scripts are most commonly used for creating user interaction with a html form on your web site. Other uses include: autoresponders, shopping carts, counters, mailing list managers, ad management, surveys, polls, discussion boards, content management, calendars and click tracking.

There are 100s of free cgi scripts that can be found on the Net. Just do a search on Google for "free cgi scripts" or visit the resources at the end of this article.

We will create an html email form to collect the name, email address and comments of subscribers using a secure cgi formmail script. An automatic confirmation will be sent and the results of the email form will be passed on to your email address.

Steps to installing your own cgi script

1. Check that your web host supports CGI - your web host will have a cgi-bin folder installed on the server. The cgi-bin is a special directory in the server where all the files which require security are kept. This is where you will upload your cgi script once it has been modified.

2. Download the cgi script - this is a secure cgi formmail script. Spammers can't access and harvest your email address from this script.

http://nms-cgi.sourceforge.net/formmail.zip

3. Read the documentation that comes with the script - this will give you a thorough understanding what changes you need to make to have it work correctly with your web site and server. It will also provide you with some examples.

Editing your script

4. Open and edit your cgi script using notepad (don't use an html editor as this can create errors).

5. Remove the html tags from the script (at the top and bottom).

6. Change the path to perl to: #!/usr/bin/perl -wT (this is the first line of the script to be edited).

7. The section of the cgi script shown below, are the other minimum fields to fill out in the script (replace the fields in the script you downloaded with the changed fields in the script below).

# USER CONFIGURATION SECTION # -------------------------- # Modify these to your own settings. You might have to # contact your system administrator if you do not run # your own web server. If the purpose of these # parameters seems unclear, please see the README file. # BEGIN { $DEBUGGING = 1; $emulate_matts_code= 0; $secure = 1; $allow_empty_ref = 1; $max_recipients = 1; $mailprog = '/usr/lib/sendmail -oi -t'; $postmaster = 'youraddress@yourdomain.com'; @referers = qw(yourdomain.com); @allow_mail_to = qw(); @recipients = (); %recipient_alias = ('siteowner' => 'youraddress@yourdomain.com',); @valid_ENV = qw(REMOTE_HOST REMOTE_ADDR REMOTE_USER HTTP_USER_AGENT); $locale = ''; $charset = 'iso-8859-1'; $date_fmt = '%A, %B %d, %Y at %H:%M:%S'; $style = ''; $no_content = 0; $double_spacing = 1; $wrap_text = 0; $wrap_style = 1; $send_confirmation_mail = 0; $confirmation_text = <<'END_OF_CONFIRMATION'; From: youraddress@yourdomain.com Subject: Subject of Your Contact Form

(short note here->> )Thank you for your interest. We will respond shortly.

END_OF_CONFIRMATION # # USER CONFIGURATION << END >> # ---------------------------- # (no user serviceable parts beyond here) --------------------------------------------------------------------------------

$postmaster = Who's sending the email @referrers = Domains that are allowed to host the script %recipient_alias = Whom the script will send email to

In my form:


You can see how the siteowner variables match up in the .pl script and in my form. This way, nobody can tell what address the form is being emailed to!

8. Rename your cgi script - name your script something else besides formmail (ie contactus.pl), as this is the most common name people use. This will prevent spammers from harvesting your email address.

9. Create your html form (contactus.htm).

[an error occurred while processing this directive]