appendix A

Web Resources


CONTENTS


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.

Other Online Resources

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.