At some point you should probably read some administrivia dealing with the class.
What are CGI programs, anyway? Where "are they" on the web?
What does CGI stand for?
What actually happens when I request a page on the web?
Impersonate a browser yourself on the command line!
So where do CGI scripts come in?
Do the files need special permissions?
We'll write these in perl?
How does the server know that a particular file requested is a CGI script?
How does the server execute the CGI script?
What headers does the http daemon add to the output returned?
Does my script need to output any headers, then?
I'm trying to generate an HTML page on the fly. Where do I print the HTML?
Hello, world!
How can I send information into the CGI script for it to respond to?
All I get is a "server error"! What should I do?
Assignment #1
How did you do last week's assignment?
I notice the finger script has $| set to 1. What is the $| variable for?
Which environment variables are directly controllable by the remote client user?
How is information sent via PATH_INFO? When is it used?
How is information sent via QUERY_STRING in the URL? When is it used?
What if I want to send a QUERY_STRING or PATH_INFO with spaces or other weird characters in it?
What should I do for next week?
How did you do last week's assignment?
We've talked about $ENV{'QUERY_STRING'} being set when a form is submitted. How do I create a form?
Can you suggest a good reference explaining the HTML for forms?
Hmm. I'd like to make various forms and see just what that does to the $ENV{'QUERY_STRING'} and/or STDIN...
What is the difference between the GET and POST "METHOD" attributes in a form?
And just what is that data, for typical forms?
Radio buttons and checkboxes always confuse me. Just how do you name them so they work properly as a group?
What should I do for next week?
How did you do last week's assignment?
We've talked a lot about getting input to CGI scripts. Can I do output things other than just printing an HTML page on the fly?
How do I return status codes?
How can I control the caching of the page I output?
How can I redirect the browser to some other page or CGI script?
How can I force a page to refresh at a given time?
This is an aside, but... what if I want to do this refreshing and redirecting on a plain HTML file? Aren't there some META tags for that?
What should I do for next week?
How did you do last week's assignment?
Okay, so are we going to toss some cookies tonight?
What should I do for next week?
How did you do last week's assignment?
Can a CGI program read files on the server which are not underneath the document root?
Can a CGI program affect files on the server?
How does a CGI script read and write files on the server?
What permissions must these files have?
Users hit my site all the time. What if two of them try to write to the same file at the same time?
How can I have my CGI process lock a file?
How can I tell if flock() is working on my system?
What should I do if LOCK_EX doesn't in fact block LOCK_EX on my system?
What should I do for next week?
How did you do last week's assignment?
Where can I learn about writing secure CGI scripts?
What should I do for next week?
How did you do last week's assignment?
Does every page with dynamic content have to be a CGI program? Sometimes the dynamic part of the page is just the last little piece.
What is a server side include?
How does the daemon know which files it has to parse and which ones it can simply return blindly?
Do the files containing server side includes need to be in any special location?
Are there security risks with server side includes?
Okay, so what exactly do these server side includes look like?
What server side include commands are available?
Where can I read more?
What should I do for next week?
For various relevant resources on the web, you should probably peruse the links on the resource page.