What is CGI?
This is an overview of what CGI is all about. It does not go into programming details, but will fill you in on
the ides behind it. In addition to the examples below CGI can be used for forums, polls, rotating banners, etc.
Pretty much anything you want your system to do.
These days a lot of the programming that was done with CGI is now being done with php, but there are
still about 40 million cgi scripts out there and a few things that only CGIs can do, so far. Just that legacy of
those millions of old scripts means that its not going anywhere soon.
Obviously, when running scripts your unix hosting service has to be capable of cgi hosting otherwise
you'll have problems. Most unix hosts will run cgi scripts so you'll find that cgi hosting and unix
hosting are usually the same thing. Check your hosting service to make sure.
Article by Richard Lowe Jr.
Let's unlock a little bit of the mystery about something called CGI. If it helps any, CGI means Common Gateway
Interface. This is a method which is used to exchange data between the server (the hardware and software that
actually allows you to get to your web site) and a web client (your browser). CGI is actually a set of standards
where a program or script (a series of commands) can send data back to the web server where it can be
Typically, you use standard HTML tags to get data from a person, then pass that data to a CGI routine. The CGI
routine then performs some action with the data.
Some of the more common uses of CGI include:
- Guestbooks - The CGI routine is responsible for accepting the data, ensuring it is valid, sending an email
acknowledgement back to the writer, perhaps sending an email to the webmaster, and creating the guestbook entry
- Email Forms - A simple CGI forms routine just formats the data into an email and sends it back to the
webmaster. More complicated routines can maintain a database, send an acknowledgement and validate data.
- Mailing List Maintenance - These routines allow visitors to subscribe and unsubscribe from a
mailing list. In this case, the CGI routine maintains a database of email addresses, and the better ones send
acknowledgements back to the visitor and webmaster.
A CGI routine can be anything which understands the CGI standard. A popular CGI language is called
PERL, which is simple to understand and use (well, compared to other languages). PERL is a scripting language,
which means each time a PERL routine is executed the web server must examine the PERL commands to determine what to
do. In contrast, a compiled language such as C++ or Visual Basic can be directly executed, which is faster and more
Okay, in a nutshell (and greatly simplified), here's how it works:
- You (the webmaster) specify a form tag which includes the name of the CGI routine.
- You create HTML tags which retrieves data from your visitors.
- Each of the input tags includes a variable name. The data which is retrieved from the visitor (or directly
set if the tag includes the "hidden" qualifier) is placed in the variable name.
- When the visitor presses the "submit" button, the CGI routine which was specified in the form tag is
executed. At this time, the CGI routine "takes control", meaning the browser essentially is waiting for it to
- This CGI routine can get data from variable names. It retrieves the data and does whatever action is
- When the CGI routine finishes, it returns control back to the web client (the browser).
Some important things to remember about CGI routines:
- You can install CGI routines on your own site if your host allows it - WebHostGear.Com is an example of a web
host which allows for CGI routines. Some unix web hosts do not allow you to install your own routines but do
provide some pre-written ones to you. If these are not sufficient for your needs, you can find a remote
hosting service to provide the necessary functions. (or find a new hosting service)
- Generally, if you install your own routines they must be installed in the cgi-bin directory of your site. This is
a special location which allows scripts and programs to be executed.
- CGI routines work best on Apache-style servers. Windows NT and Windows 2000 does support CGI, but it tends to be
slow and problematic.
- If you use a remote hosting service, you must remember that although they appear to be giving you this for free,
you are actually paying a price. Usually they want to display advertisements, although some of them actually take
visitors away from your site.
- When you write a CGI routine, you have the choice of a scripting language like PERL or a compiled language such
as C++ or Visual Basic. Anything which can execute on the web server is acceptable.
I hope this short introduction to CGI has cleared up some of the mystery.
About the Author
Richard Lowe Jr. is the webmaster of Internet Tips And Secrets. This website includes over 1,000 free
articles to improve your internet profits, enjoyment and knowledge. Web Site Address: http://www.internet-tips.net Weekly newsletter: http://www.internet-tips.net/joinlist.htm
CGI Info on the Web:
$errorCode = 2
xml_error_string() = syntax error
xml_get_current_line_number() = 2
xml_get_current_column_number() = 0
xml_get_current_byte_index() = 40