240 likes | 415 Views
Introduction to the Common Gateway Interface (CGI) on the Web. Instructor: Joseph DiVerdi, Ph.D. CGI In Brief. CGI stands for Common Gateway Interface It allows the web server to communicate with other programs that are running on the server. For example:
E N D
Introduction to the Common Gateway Interface (CGI) on the Web Instructor: Joseph DiVerdi, Ph.D.
CGI In Brief • CGI stands for Common Gateway Interface • It allows the web server to communicate with other programs that are running on the server. For example: • With CGI, the server causes an external program to execute while passing user-specific data to that program. • That program processes that data, sends a response back to the server which passes the response back to the browser.
Uses of CGI • Web Clock Changes from one viewing to another
Uses of CGI • Simple Survey
Uses of CGI • Simple Game
Uses of CGI • Quiz
Uses of CGI • Search Engine
Uses of CGI • Database access
Uses of CGI • Not limited to previously written documents • Enables web pages to be created on-the-fly • Based on the Users’ input • Provide users with information, collect their comments, and respond
Dynamic Page Content • Page created dynamically via (Perl) script or • Page with Server Side Includes (SSI) or • Page with embedded call to (Perl) script • The result is still an HTML page
Dynamically Created Image • Web Clock
Dynamic Image Inclusion <HTML> <HEAD> <TITLE>Digital Clock Demo</TITLE> </HEAD> <BODY> <IMG SRC="/cgi/digital_clock.pl"> </BODY> </HTML>
CGI Interaction • Operation is as follows: • Client requests a document which actually is a CGI program perhaps including some user-specific data • Server executes requested program passing data received from browser request • Program completes execution and generates a response • Server returns response to browser
CGI Database Interaction • Combing the power of relational database management systems (RDBMS) with Web is very powerful. • CGI program is required to decode input, assemble query, send to database, process return data from database, and create return document.
Preparing to Use CGI • Create directory "cgi" in "html" directory • CaSe iS vErY iMpOrTaNt! • Ensure cgi directory has "rwxr-xr-x" access • CGI programs must be located here • Ensure programs have "rwxr-xr-x" access • Always test program with telnet client FIRST! • Test using Browser and sample HTML page
Simple But Useful Program • Create a file "useful.pl" #! /usr/bin/perl -w print "Content-type: text/html\n\n"; print "Hello, CGI Programmer!<BR>\n"; exit; • Save file in "cgi" • Ensure program has "rwxr-xr-x" access • Test using telnet client • Test using browser
More Useful Program • Modify the file "useful.pl" #! /usr/bin/perl -w print "Content-type: text/html\n\n"; print "Hello, CGI Programmer!<BR>\n"; print "The current time is ", scalar localtime, "<BR>\n"; print "You are using the computer named: ", $ENV{'REMOTE_HOST'}, "<BR>\n"; exit;
Simple Shell Program • Create a file "env.cgi" #! /bin/sh echo "Content-type: text/html" echo env
Using Others' Programs • Create a form page, e.g., Ice Cream Survey • Include the following HTML <FORM METHOD=POST ACTION="http://www.xtrsystems.com/cgi/formmail.pl" <INPUT TYPE=HIDDEN NAME="send_feedback_to" VALUE="your_email_address"> <INPUT TYPE=HIDDEN NAME="subject" VALUE="your_email_subject">
Using Programs • Install formmail.pl in your account on linus • Download from class Materials Page • Upload to "cgi" directory • Check program access • Modify form HTML • Test with browser • Modify program (very carefully!!) • Have fun