As mentioned in previous chapters, one of the greatest things about programming with CGI is the vast number of resources available to help you. Everything from tutorials to prewritten programs is available on the Web. I have spent many hours compiling a list of as many of these CGI resources as I could find, and it is included here for you.
I have purposely tried to leave out any site that just sells CGI products or does Web consulting, because it would not be fair to have some but not all of the companies that do so. I have included companies that produce freeware or shareware products related to CGI.
O'Reilly and Associates CGI Information Page
http://www.ora.com/info/cgi
O'Reilly is the distributor of WebSite server software, and because of this, this page contains a lot of WinCGI-related code snippets, samples, and so on.
Dale Bewley's PD Perl Site
http://www.engr.iupui.edu/~dbewley/perl/
Contains public domain Perl scripts that do a variety of tasks.
EIT Software Archive
http://www.eit.com/goodies/software/
Home of hypermail, libcgi, and so on. Although the software is still there, most of it is no longer supported by EIT.
The CGI Collection
http://www.selah.net/cgi.html
This is a collection of CGI information, links to other CGI sites, and CGI scripts written in various languages. The scripts here cover a lot of the things that CGI is generally used for (mail form handling, clocks, counters, and so on).
Intro to CGI Programming at the University of Utah
http://ute.usi.utah.edu/bin/cgi-programming/counter.pl/cgi-programming/index.html
This site contains a tutorial that introduces people to the basics of CGI programming. It goes over topics such as form handling, security, debugging, and so on. Sample programs are also included. Languages used are the Bourne shell and Perl.
Sundqvist's Web Developers Bookmarks
http://www.abo.fi/~csundqvi/cgi.htm
A list of links to other pages of CGI links, various overviews of CGI, various documentation on CGI, and various pages containing programs written in CGI.
Mooncrow's CGI/Perl Source Page
http://www.seds.org/~smiley/cgiperl/cgi.htm
A page containing links to docs on general CGI programming and links to specific programs/info on Perl CGI programming.
Jobs for CGI Programmers
http://WWW.Stars.com/Jobs/
A place where people who need CGI/Web programmers can post their needs, so that the people who need jobs can contact them.
Lincoln D. Stein's CGI Examples
http://www-genome.wi.mit.edu/WWW/examples/Ch9/
This page contains sample scripts from a book on how to set up and run a Web site.
A CGI Programmer's Reference
http://www.best.com/~hedlund/cgi-faq/
These pages are intended to collect information useful to Common Gateway Interface (CGI) programmers.
ACGI C++ Class Hierarchy
http://www.serve.com/adc/achat/acgi.html
This is a link to a C++ class hierarchy that provides a very complete way to write CGI apps in C++. It is the most full featured C++ class hierarchy I know of.
C++ CGI Class
ftp://www.math.unh.edu/pub/black/cgiClass
A class to aid development of CGI scripts written in C++. The class includes methods for HTML formatting as well as handling forms.
CGI Form Handling in Perl
http://www.bio.cam.ac.uk/web/form.html
Perl is an excellent language for a variety of tasks, especially those that require text management and data parsing. As a result, it is well suited for writing code to manage the common gateway interface (CGI) forms that have become the mainstay of World Wide Web interactive communication via HTML.
CGI Test Cases
http://hoohoo.ncsa.uiuc.edu/cgi/examples.html
This document references a test server that has implemented the CGI interface. It is provided to give a better understanding of how CGI works in reality. If you are interested, you should look at the source for the CGI script used in these examples.
CGI Specification
http://www.ast.cam.ac.uk/%7Edrtr/cgi-spec.html
The Common Gateway Interface, or CGI, is an interface for running external programs, or gateways, under an information server. Currently, the supported information servers are HTTP servers.
CGI.pm-a Perl5 CGI Library
http://www-genome.wi.mit.edu/ftp/pub/software/WWW/
This Perl 5 library uses objects to create Web fill-out forms on-the-fly and parse their contents. It is similar to cgi-lib.pl in some respects. It provides a simple interface for parsing and interpreting query strings passed to CGI scripts.
CGI/1.1 Script Support of the CERN Server
http://www.w3.org/hypertext/WWW/Daemon/User/CGI/Overview.html
Server scripts are used to handle searches, clickable images, and forms, and to produce synthesized documents on-the-fly. See calendar and finger gateway for examples.
CGIHTML-C Library for CGI
http://hcs.harvard.edu/~eekim/web/cgihtml/
Describes a set of C routines for easily writing CGI programs. Includes documentation, a brief tutorial, and sample programs.
CGILIB 3.0
http://phonos.upf.es/~jordinas/esp/cgi.htm
This is a CGI library. The code compiles in Windows NT and Posix systems.
CGIwrap-More Secure User Access to CGI Scripts
http://wwwcgi.umr.edu/~cgiwrap
CGIwrap allows system administrators to let users create their own CGI scripts. CGIwrap performs various security checks on the scripts before changing the ID to match the owner of the script.
Custom Innovative Solutions
http://www.cisc.com/
A source code library and several papers describing how to implement some applications.
EIT's CGI Library
http://wsk.eit.com/wsk/dist/doc/libcgi/libcgi.html
These functions help you write virtual document (CGI) programs using C. Look at the template.c file for an illustrative example. Feel free to download the latest distributions from ftp.eit.com.
Group Cortex CGI Center
http://www.netweb.com/cortex/content/resources/cgi/
This site contains references to information about the Common Gateway Interface (CGI) specification.
Introduction to the Common Gateway Interface
http://hoohoo.ncsa.uiuc.edu/cgi/intro.html
This site is the home of CGI. This is a link to the page that introduces CGI and some of its various concepts to the user.
John Donohue's Perl CGI Examples
http://www.panix.com/~wizjd/test.html
Some examples of CGI programming written in Perl, such as an image map without using imagemap.c, juggling variables (maintaining state information) between pages, generating a random number, searching for names in a phone book, and a simple self-scoring questionnaire.
Matt's Script Archive
http://worldwidemart.com/scripts/
This site consists of many free CGI scripts for the taking. They can help you learn how to build your own CGI programs, or you can use them as is and install them on your system. Examples of the scripts include a guestbook, a free-for-all link page, a bulletin board message system, a form to e-mail gateway, a random image displayer, a random link generator, a countdown, and many more.
NR Gateways
http://www.nr.no/demo/gateways.html
This gives pointers to gateways and Plexus utilities developed at Norsk Regnesentral.
Selena Sol's Public Domain CGI Script Library
http://www.eff.org/~erict/Scripts/
Public domain CGI scripts written by Selena Sol (shopping carts, feedback forms, groupware calendar, counters, clocks, animation, bulletin boards, and miscellaneous applications).
Setting up CGI in ncSA httpd
http://hoohoo.ncsa.uiuc.edu/docs/tutorials/cgi.html
This is the original tutorial on how to create CGI applications. Although it is old, it covers a lot of CGI concepts.
The Common Gateway Interface
http://hoohoo.ncsa.uiuc.edu/cgi/primer.html
This document is intended to ease you into the idea of writing your own CGI programs with simplified examples and an explanation that is less technically oriented than the interface specification itself.
The Common Gateway Interface Specification
http://hoohoo.ncsa.uiuc.edu/cgi/interface.html
This is the original CGI 1.0 specification.
UnCGI Version 1.3
http://www.hyperion.com/~koreth/uncgi.html
This is uncgi, a front end for processing queries and forms from the Web on UNIX systems. You can get it via anonymous FTP from ftp.hyperion.com or depending on your browser, by following this link. Without this program, if you wanted to process a form, you'd have to either write or dig up routines to translate the values of the form's fields from URL encoding to whatever your program required.
Web Construction
http://www.zip.com.au/~dwight/webconst.htm
Mini-library of tools and information for constructing Web pages. It was produced as the site administrator put together the Australian Society of Indexers Web site.
A Simple CGI E-Mail Handler
http://www.boutell.com/email/
A program to handle forms that need to e-mail people. Very simple and configurable.
ABC Tutorial on CGI
http://lpage.com/cgiexample.html
This is a link to a page containing CGI examples, code, and tutorials. These examples use WinCGI. Particularly known for its guestbook.
Ada 95 Binding to CGI
http://wuarchive.wustl.edu/languages/ada/swcomps/cgi/cgi.html
Interface to CGI interface for Ada 95 programs.
Amiga CGI Documentation
http://www.phone.net/amiga-docs/
Contains documentation about and links to resources related to CGI programming on the Amiga.
AppleScript/Frontier CGI Tour
http://cy-mac.welc.cam.ac.uk/cgi.html
Tour through some Frontier and AppleScript CGIs dealing with simple image maps, redirection, client-pull, server-push, dynamic page generation, and form processing.
Building HTML-Based Interfaces
http://blackcat.brynmawr.edu/~nswoboda/prog-html.html
This document describes how to build graphical, form-based interfaces for end-user programs using HTML. The tutorial includes examples in C, C++, Perl, and Pascal.
C++ Class Library (Version 2.1)
http://sweetbay.will.uiuc.edu/cgi++
This is a new version that incorporates some changes suggested by the people who gave feedback. It contains everything needed to process HTML forms.
cgi-bbcurn
http://www.stuff.com/~bcutter/home/programs/bbcurn/bbcurn.html
Simulate URNs with a HTTP/1.0 redirect.
cgi-lib.pl
http://www.bio.cam.ac.uk/cgi-lib/
A library for creating Common Gateway Interface (CGI) scripts in the Perl language.
cgiutils Manual Page
http://www.w3.org/hypertext/WWW/Daemon/User/CGI/cgiutils.html
The cgiutils program is provided to make it easier to easily produce a full HTTP1 response header by NPH [No-Parse-Headers] scripts.
Cookbook of Canned CGIs
http://www59.metronet.com/cgi/
Generic CGI programs written in Perl that you can use on your own site: mailto, imagemaps, server-push animations, and redirections.
Email.cgi
http://www.lib.ncsu.edu/staff/morgan/email-cgi.html
A CGI script to be used on MacHTTP servers for the purposes of sending e-mail from WWW browsers that are not mailto-capable.
Felipe's AppleScript CGIs Examples
http://edb518ea.edb.utexas.edu/scripts/cgix/cgix.html
A collection of AppleScript CGIs, tutorials on writing CGI in AppleScript, and links to other pages containing info on CGI programming in AppleScript, and CGI on the Apple in general.
Forms in Perl
http://www.seas.upenn.edu/~mengwong/forms/
Some Perl scripts relevant to the handling of CGI forms.
Getcomments
http://seclab.cs.ucdavis.edu/~hoagland/getcomments/
Getcomments is a Perl CGI script that can take forms and do one of three things with it: It can e-mail the contents to someone, append the contents to a log, or display the variables back to the user.
Hack Chat
http://alamak.speakeasy.org/hackchat.html
Easy to install, Hack Chat supports auto-refresh and multiple rooms and uses the latest features of Netscape 2.0 (frames and JavaScript).
HyperCard Server
http://128.122.169.13/
An experimental server at New York University running MacHTTP and using HyperCard to generate interesting CGI scripts.
Language Interactive
http://www.fln.vcu.edu/cgi/interact.html
An introduction for language and humanities teachers to the ins and outs of creating dynamic Web pages, especially Web forms and CGI scripting.
List of CGIs (Dave Ellis)
http://www.cyserv.com/pttong/cgi.html
For all levels of programmers, this page provides links to online lessons, other pages of CGIs, and FTP sites, as well as programs and information about them.
Map THIS!
http://galadriel.ecaetc.ohio-state.edu/tc/mt/
Freeware Windows program designed to create, edit, and maintain World Wide Web clickable image maps.
Matt's Editor CGI
http://www.goshen.edu/~mattdm/edithtml/
Free Perl scripts to let users edit Web pages from within their browsers rather than from UNIX accounts.
Netscape HTTP Cookie Notes
http://www.illuminatus.com/cookie
Helpful tips and code on setting HTTP magic cookies with code in MacPerl and AppleScript. Special notes about Microsoft Internet Explorer.
Processing of CGI Arguments Under Tcl
http://www.lbl.gov/~clarsen/projects/htcl/http-proc-args.html
Contains information on how to handle GET requests using Tcl.
RedMan-Redirection Manager
http://sw.cse.bris.ac.uk/WebTools/redman.html
A redirection manager for ncSA-style servers. Allows sysadmins to declare system-wide redirection and users to declare redirections without sysadmin intervention.
ROFM-a FileMaker Pro CGI
http://rowen.astro.washington.edu/
Serve FileMaker Pro databases on the World Wide Web from your Macintosh.
Serge's Sources
http://serg.gs.pssr.e-burg.su/docs/src/
Sources of sample CGI programs in C++.
Sethro's Simple Scripts
http://www.catch22.com/~sethro/scripts.htm
Easy step-by-step scripts designed for non-programmers. Scripts include form return, a guestbook, and a post-it.
Shareware CGI
http://128.172.69.106:8080/cgi-bin/cgis.html
Contains several CGIs including a guestbook, an add-your-own-link page, and a post form to file CGI.
Tcl-Based CGI Forms
ftp://ftp.crl.com/users/iv/ivler/email.tcl
This page contains a Tcl-based CGI that allows for forms to be processed to e-mail.
Virtual Webwerx Division Zero-CGI Land
http://www.novia.net/~geewhiz/
Includes Stat Trax, a free and easy way to keep statistics of all your Web pages.
Web Developers Warehouse
http://www.aee.com/wdw
Build CGI apps for a Web site using C++.
Windows CGI 1.1 Description
http://www.city.net/win-httpd/httpddoc/wincgi.htm
This is a link to the Windows CGI 1.1 specification.
The only other non-HTTP based online resource I have found to be useful and available to people with accounts on either AOL, CompuServe, or MSN is the Usenet group comp.infosystems.www.authoring.cgi. A mailing list for CGI programming does exist, but traffic on it was nonexistent for the six months I was a member.
There is currently no existing centralized FTP site for CGI resources.
The resources available on AOL, CompuServe, and MSN are easily found and centralized, so there is no reason to list them here.