Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z - Internet FAQ Archives

FAQ: Frequently Asked Questions about CGI Programming

( Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Business Photos and Profiles ]

See reader questions & answers on this topic! - Help others by sharing your knowledge
Frequently Asked Questions on CGI Programming

0.   Preamble
0.1. Changes
0.2. Notice and Disclaimer
0.3. Where to get this document
0.4. How to contribute to this document?
0.5. Can I email the author my questions?
0.6. What's up with posting to comp.infosystems.www.authoring.cgi?
0.7. Credits

1.   Basic Questions
1.1. What is CGI?
1.2. Is it a script or a program?
1.3. When do I need to use CGI?
1.4. Should I use CGI or JAVA?
1.5. Should I use CGI or SSI or ... { PHP/ASP/... }
1.6. Should I use CGI or an API?
1.7. So what are in a nutshell the options for webserver programming?
1.8. What do I absolutely need to know?
1.9. Does CGI create new security risks?
1.10. Do I need to be on Unix?
1.11. Do I have to use Perl?
1.12. What languages should I know/use?
1.13. Do I have to put it in cgi-bin?
1.14. Do I have to call it *.cgi?  *.pl?
1.15. What is the "CGI Overhead", and should I be worried about it?
1.16. What do I need to know about file permissions and "chmod"?
1.17. What is CGIWrap, and how does it affect my program?
1.18. How do I decode the data in my Form?

2.   HTTP Headers and NPH Scripts
2.1. What is HTTP (HyperText Transfer Protocol)?
2.2. What HTTP request headers can I use?
2.3. What Environment variables are available to my application?
2.4. Why doesn't my script get REMOTE_USER?  My page is password-protected.
2.5. What HTTP response headers do I need to know about?
2.6. What is NPH?
2.7. Must/should/can I write nph scripts?
2.8. Do I have to call it nph-*
2.9. What is the difference between GET and POST?

3.   Techniques: "How do I..."
3.1. Can I get information about who is visiting?
3.2. Can I get the email of visitors?
3.3. 	"But I saw display my email address..."
3.4. Can I verify the email addresses people enter in my Form?
3.5. Subject: How can I get the hostname of the remote user?
3.6. Can I get browser details and return different pages?
3.7. Can I trace where a user has come from/is going to?
3.8. Can I launch a long process and return a page before it's finished?
3.9. Can I launch a long process which the user interacts with?
3.10. Can I password-protect my pages?
3.11. Can I do HTTP authentication using CGI?
3.12. Can I identify users/sessions without password protection?
3.13. Can I redirect users to another page?
3.14. Can I run a CGI script without returning a new page to the browser?
3.15. Can I write output to a different Netscape frame?
3.16. Can I write output to several frames at once?
3.17. Can I use a CGI script to generate both text and inline images?
3.18. How can I use Caches to make CGI scripts faster and more Net-friendly?
3.19. How can I avoid users hitting "submit" twice?
3.20. How can I stop my CGI script reading and writing files as "nobody"?
3.21. How can I prevent my CGI results being cached by the browser?
3.22. How can I control the default filename when downloading a file via CGI?

4.   Troubleshooting a CGI application
4.1. Are there some interactive debugging tools and services available?
4.2. I'm having trouble with my headers.   What can I do?
4.3. Why do I get Error 500 ("the script misbehaved", or "Internal Server Error")
4.4. I tried to use (Content-Type|Location|whatever), but it appears in my Browser?
4.5. How can I run my CGI program 'live' in a debugger?
4.6. I'm using CGI with QUERY_STRING embedded in my HTML, but it gets corrupted?

5.   Further Reading
5.1. Other FAQs/collections
5.2. Reference Pages


User Contributions:

Comment about this article, ask questions, or add new information about this topic:


Section Contents

Single Page

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
Nick Kew <>

Last Update March 27 2014 @ 02:12 PM