The pages on Gcom, Inc.'s web site feature a standard footer on each page. This footer includes a last-modified date as well as a running tally of hits. This footer is applied by means of an Apache MIME-type handler. The pertinent part of the Apache configuration file is linked here, as "apache.txt".
The actual handler script retrieves modification dates by examining the filesystem's records, keeps track of access counts in a GDBM database, and prints the footer information based on HTML embedded within the script. This script is linked here, as "action-style.pl".
This project was both more elaborate and more extensive than the previous project. The Flora of North America project provided HTML versions of several species classifications. The object of the project was to provide search access to this collection.
Several alternatives were explored, resulting in the scheme outlined on my main project discussion page. This version of the page focuses mainly on the overall flow of the system which was developed and the contributions which I was personally responsible for.
While the links are mostly broken, a copy of the group's main project page is also archived locally here, and the original site used for the class project remains available as of this writing at oak.lis.uiuc.edu. This page is less self-oriented than my own page, but is also not quite as well-focussed as a consequence.
This project was written as a demonstration of my ability to write both C code and CGI scripts. It's "ANSI C", or at least POSIX, even though there were a couple places where I would have liked to back off the POSIX to support older Un*x systems.
The project works in two stages. From the GET query, the additional URL information (stuff after the ?) is interpreted as a directory name. The script takes this directory name as its starting place, then scans subdirectories, searching for .gif or .GIF files. It returns a select box made up of the filenames. When a user selects the file, it opens the file, spits out a MIME type header, then the content of the file.
Pretty trivial, really. The main code is in lister.c, and a Makefile and a utility library in stack.c and stack.h.