CGI Programming FAQ
Copyright © Nick Kew, 1996-2000.
Please read the Notice and Disclaimer.
The Table of contents starts at 0 (preamble). Older (pre-HTML 3)
or broken browsers may start it at 1: apologies for any confusion.
- Preamble
- Changes
- Notice and Disclaimer
- Where to get this document
- How to contribute to this document?
- Can I email the author my questions?
- What's up with posting to comp.infosystems.www.authoring.cgi?
- Credits
- Basic Questions
- What is CGI?
- Is it a script or a program?
- When do I need to use CGI?
- Should I use CGI or JAVA?
- Should I use CGI or SSI or ... { PHP/ASP/... }
- Should I use CGI or an API?
- So what are in a nutshell the options for webserver programming?
- What do I absolutely need to know?
- Does CGI create new security risks?
- Do I need to be on Unix?
- Do I have to use Perl?
- What languages should I know/use?
- Do I have to put it in cgi-bin?
- Do I have to call it *.cgi? *.pl?
- What is the "CGI Overhead", and should I be worried about it?
- What do I need to know about file permissions and "chmod"?
- What is CGIWrap, and how does it affect my program?
- How do I decode the data in my Form?
- HTTP Headers and NPH Scripts
- What is HTTP (HyperText Transfer Protocol)?
- What HTTP request headers can I use?
- What Environment variables are available to my application?
- Why doesn't my script get REMOTE_USER? My page is password-protected.
- What HTTP response headers do I need to know about?
- What is NPH?
- Must/should/can I write nph scripts?
- Do I have to call it nph-*
- What is the difference between GET and POST?
- Techniques: "How do I..."
- Can I get information about who is visiting?
- Can I get the email of visitors?
- "But I saw some.kool.site display my email address..."
- Can I verify the email addresses people enter in my Form?
- Subject: How can I get the hostname of the remote user?
- Can I get browser details and return different pages?
- Can I trace where a user has come from/is going to?
- Can I launch a long process and return a page before it's finished?
- Can I launch a long process which the user interacts with?
- Can I password-protect my pages?
- Can I do HTTP authentication using CGI?
- Can I identify users/sessions without password protection?
- Can I redirect users to another page?
- Can I run a CGI script without returning a new page to the browser?
- Can I write output to a different Netscape frame?
- Can I write output to several frames at once?
- Can I use a CGI script to generate both text and inline images?
- How can I use Caches to make CGI scripts faster and more Net-friendly?
- How can I avoid users hitting "submit" twice?
- How can I stop my CGI script reading and writing files as "nobody"?
- How can I prevent my CGI results being cached by the browser?
- How can I control the default filename when downloading a file via CGI?
- Troubleshooting a CGI application
- Are there some interactive debugging tools and services available?
- I'm having trouble with my headers. What can I do?
- Why do I get Error 500 ("the script misbehaved", or "Internal Server Error")
- I tried to use (Content-Type|Location|whatever), but it appears in my Browser?
- How can I run my CGI program 'live' in a debugger?
- I'm using CGI with QUERY_STRING embedded in my HTML, but it gets corrupted?
- Further Reading
- Other FAQs/collections
- Reference Pages
INDEX