CGI programming in Perl Learning Objectives: 1. To understand how a CGI program works in Perl and how to make it runnable in web browsers 2. To learn how.

Slides:



Advertisements
Similar presentations
Web forms and CGI scripts Dr. Andrew C.R. Martin
Advertisements

Adding Dynamic Content to your Web Site
More CGI Programming Software Tools. Lecture 23 / Slide 2 Checkbox and Link Example l The following example shows how to generate checkboxes and links.
CGI Programming.
CGI Programming Part 2. Input Tags Many different ways of getting data from the user. The tag is used most often. has a type attribute –Specifies the.
CGI programming in Perl Learning Objectives: 1. To understand how a CGI program works in Perl and how to make it runnable in web browsers 2. To learn how.
Server Push and Client Pull Software Tools. Slide 2 Dynamic Documents l Browsers have always been driven by user input. You click on a link or an icon.
Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013.
Server-Side vs. Client-Side Scripting Languages
A simple PHP application We are going to develop a simple PHP application with a Web interface. The user enters two numbers and the application returns.
More CGI Programming Learning Objectives: 1. To understand & illustrate how to produce input from different components (checkbox, textarea, links … etc)
Web Page Development Identify elements of a Web Page Start Notepad
CGI Programming in Perl Software Tools. Lecture 22 / Slide 2 CGI Programming l Last time we looked at designing a static web page. Today we will see how.
Python and Web Programming
Simple PHP application. A simple application We are going to develop a simple PHP application with a Web interface. The user enters two numbers and the.
CGI Programming: Part 1. What is CGI? CGI = Common Gateway Interface Provides a standardized way for web browsers to: –Call programs on a server. –Pass.
Creating Web Page Forms
2440: 141 Web Site Administration Web Server-Side Programming Professor: Enoch E. Damson.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
1 ADVANCED MICROSOFT WORD Lesson 15 – Creating Forms and Working with Web Documents Microsoft Office 2003: Advanced.
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
CGI Common Gateway Interface. CGI is the scheme to interface other programs to the Web Server.
JAVASCRIPT HOW TO PROGRAM -2 DR. JOHN P. ABRAHAM UTPA.
Chapter 9 Using Perl for CGI Programming. Computation is required to support sophisticated web applications Computation can be done by the server or the.
1 Homework / Exam Exam 3 –Solutions Posted –Questions? HW8 due next class Final Exam –See posted schedule Websites on UNIX systems Course Evaluations.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
1 HTML and CGI Scripting CSC8304 – Computing Environments for Bioinformatics - Lecture 10.
1 Forms A form is the usual way that information is gotten from a browser to a server –HTML has tags to create a collection of objects that implement this.
Chapter 5 Java Script And Forms JavaScript, Third Edition.
Chapter 6: Forms JavaScript - Introductory. Previewing the Product Registration Form.
PMS /134/182 HEX 0886B6 PMS /39/80 HEX 5E2750 PMS /168/180 HEX 00A8B4 PMS /190/40 HEX 66CC33 By Adrian Gardener Date 9 July 2012.
CP476 Internet Computing CGI1 CGI is a common way to provide for specific computations on server side, interactions with users, or access to databases.
Perl Web Page – Just Enough Pepper. Web site Set up the top of your script to indicate perl and plain text #!/usr/bin/perl print "Content-type:text/plain\n\n";
Python CGI programming
Introduction to Programming the WWW I CMSC Summer 2004 Lecture 6.
USING PERL FOR CGI PROGRAMMING
Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and check boxes using HTML Add a pull-down.
Lecture # 6 Forms, Widgets and Event Handling. Today Questions: From notes/reading/life? Share Personal Web Page (if not too personal) 1.Introduce: How.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
JavaScript, Fourth Edition Chapter 5 Validating Form Data with JavaScript.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 9 Using Perl for CGI Programming.
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
CGI Programming. What is "CGI"? Common Gateway Interface A means of running an executable program via the Web. CGI is not a Perl-specific concept. Almost.
1 Basic Perl CGI Programming. 2 Issues How and when your program is invoked. Generating Response –HTTP Headers –HTML (or whatever document type you want)
Chapter 6 Server-side Programming: Java Servlets
CGI Common Gateway Interface. CGI is the scheme to interface other programs to the Web Server.
3 1 Sending Data Using an Online Form CGI/Perl Programming By Diane Zak.
HTML Form Widgets. Review: HTML Forms HTML forms are used to create web pages that accept user input Forms allow the user to communicate information back.
Introduction to JavaScript CS101 Introduction to Computing.
Introduction to Programming the WWW I CMSC Winter 2003.
Intermediate CGI & CGI.pm Webmaster II - Fort Collins, CO Copyright © XTR Systems, LLC CGI Programming & The CGI.pm Perl Module Instructor: Joseph DiVerdi,
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
 2001 Prentice Hall, Inc. All rights reserved. Chapter 7 - Introduction to Common Gateway Interface (CGI) Outline 7.1Introduction 7.2A Simple HTTP Transaction.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
CGI in Context CGI is Common Gateway Interface, supporting a greater degree of interaction between the user and a Web page, most commonly by means of a.
Basic ActionScript and PHP Cis 126. Getting Started set up a basic folder structure so we can keep our files organized. Mirror this structure on your.
IS2803 Developing Multimedia Applications for Business (Part 2) Lecture 2: Introduction to IS2803 Rob Gleasure
FORMS Explained By: Jasdeep Kaur. Lecturer, Department of Computer Application, PGG.C.G., Sector: 42, Chandigarh.
Lesson 11. CGI CGI is the interface between a Web page or browser and a Web server that is running a certain program/script. The CGI (Common Gateway Interface)
University of Kansas Department of Electrical Engineering and Computer Science Dr. Susan Gauch April 21, 2005 I T T C Introduction to Web Technologies.
The Common Gateway Interface (CGI) Pat Morin COMP2405.
Chapter 7 - Introduction to Common Gateway Interface (CGI)
CGI, FORMS and Perl CSC 3750 Fall
CGI I: Basics Web Programming.
Section 17.1 Section 17.2 Add an audio file using HTML
Introduction to Programming the WWW I
CGI Programming Part II UNIX Security
CGI I: Basics Web Programming.
Presentation transcript:

CGI programming in Perl Learning Objectives: 1. To understand how a CGI program works in Perl and how to make it runnable in web browsers 2. To learn how to retrieve & process input through web page interface 3. To learn how to generate a web page from a Perl CGI program

COMP111 Lecture 22 / Slide 2 Table of Content  CGI Programming  My CCST Home Page  HTML of My Home Page  Hello World CGI Program  Hello World Output  Here Documents  Hello World Details  Testing CGI Programs  The CGI Moduless  impler Hello World  Adding Textfields  Hello Gates  Hello Gates Initial Screen  Hello Gates Result Screen  Hello Gates Screens  Other Form Widgets  Bill’s Fans page1  Bill’s Fans page2  Bill’s Fans Initial Screen  Bill’s Fans Result Screen CGI Programming in Perl

COMP111 Lecture 22 / Slide 3  Last time we looked at designing a static web page. Today we will see how to design dynamic web pages using CGI programs.  A CGI program allows the user to interact with a web page by generating HTML code that depends on the user input.  For example, web pages with an entry form or buttons use a CGI program to get the input from the user, and display appropriate results.  Since the Web mainly contains text, Perl is the most popular language for CGI programming because it is good at text manipulation. CGI Programming (1)

COMP111 Lecture 22 / Slide 4  cssystem considers CGI programs to be a security risk, and does not allow them. ITSC, however, allows CGI programs.  You have to place your CGI programs in a directory called cgi- bin in your public_html directory at the computer ihome.ust.hk. $HOME/public_html/cgi-bin  Then, you can place your CGI programs under the directory $HOME/public_html/cgi-bin and the URL to access your CGI program is:  Your CGI program should also have execute permission set: chmod a+x program.cgi  (*) If you encountered “ Internal Server Error ”, you may need to transfer (FTP) your program in ASCII mode CGI Programming (2)

COMP111 Lecture 22 / Slide 5 My ITSC Home Page

COMP111 Lecture 22 / Slide 6 Andrew Horner Andrew Horner My "official" home page run CGI program HTML of My Home Page

COMP111 Lecture 22 / Slide 7  Here is a “ Hello World ” CGI program: #!/usr/local/bin/perl5 -w # hello world CGI program print <<END_OF_MULTILINE_TEXT; Content-type: text/html Hello World Program Hello World! END_OF_MULTILINE_TEXT Blank line (no spaces or tabs) required! Hello World CGI Program

COMP111 Lecture 22 / Slide 8 Hello World Output

COMP111 Lecture 22 / Slide 9 Here Documents  The previous example uses a here document.  It starts with the << and a word called the end token ( END_OF_MULTILINE_TEXT ).  Here documents are a convenient way to quote a multi-line string.  The string begins on the next line and continues up to a line containing the end token at the start of the line.  Here documents are very useful for generating HTML.

COMP111 Lecture 22 / Slide 10 Hello World Details  The Content-type line identifies the type of output we are generating ( text/html ).  It is immediately followed by a blank line, which must contain no spaces or tabs. This line separates the CGI header from the HTML code.  After the blank line comes the HTML, which is sent to be formatted and displayed on the user ’ s browser.

COMP111 Lecture 22 / Slide 11 Testing CGI Programs  Make sure your program runs properly from the command line before testing it on the web: $ ~horner/public_html/cgi-bin/hello.cgi Content-type: text/html Hello World Program Hello World! $

COMP111 Lecture 22 / Slide 12 The CGI Module  Using here documents in Perl is still a painful way to generate HTML.  Perl has a CGI module to make it easier.  To use the CGI module in your program, include the following line near the top of your program: use CGI qw(:standard);  The use statement is like #include in C++; it brings in predefined functions from another file at compile time.

COMP111 Lecture 22 / Slide 13 Simpler Hello World (1)  Below is the “ Hello World ” program using the CGI module: #!/usr/local/bin/perl5 -w # hello world CGI program using CGI module use CGI qw(:standard); print header(); print start_html("Hello World Program"); print h1("Hello World!"); print end_html();  CGI module functions return strings, which we can then send to print.

COMP111 Lecture 22 / Slide 14 Simpler Hello World (2)  In the previous program,  header() returns a string containing the Content-type line with a following blank line  start_html(string) returns string as an HTML title  h1(string) returns string as a first-level HTML heading, and  p(string) would return string as a new HTML paragraph.

COMP111 Lecture 22 / Slide 15 Adding Textfields  CGI provides various widgets for accepting user input in forms.  One of the most common widgets is the textfield widget, which allows the user to enter text in a box.  In addition to start_html(), you also need start_form() before you add your textfield.  textfield() is often called inside a p() function.  The first argument is the name of the textfield  The second argument is the default value. print start_form; print p("Bill is: ", textfield("bill","cheap")); print end_form;

COMP111 Lecture 22 / Slide 16 Hello Gates  A form with a textfield widget: #!/usr/local/bin/perl5 -w # Bill Gates CGI program use CGI qw(:standard); $billvalue = param("bill"); # get value from bill-field print header(), start_html("Hello Bill Gates"); print h1("Hello Gates Lovers!"); if($billvalue){# display, if user has hit Return print p("Yes, Bill is $billvalue."); }else{# otherwise, ask for user-input print hr, start_form; # hr() is HTML print p("Bill is: ", textfield("bill","cheap")); print end_form, hr; } print end_html();

COMP111 Lecture 22 / Slide 17  When we click on a link that points to this program, you will see the below screen.  The text field is initially filled with the default value. Hello Gates Initial Screen

COMP111 Lecture 22 / Slide 18  In your browser, select View -> Source, you get the following HTML listing: Hello Bill Gates Hello Gates Lovers! Bill is: Hello Gates Initial Screen (in HTML)

COMP111 Lecture 22 / Slide 19  If the user does not change the default value, but hits return, the following is displayed: Hello Gates Result Screen

COMP111 Lecture 22 / Slide 20 Hello Gates Screens  If the user changes the bill field as in the left screen, the right screen results:

COMP111 Lecture 22 / Slide 21 Other Form Widgets  Now we know how to create simple text fields and respond to them.  What about other widgets like buttons, checkboxes, and menus?  The program on the following slides includes:  popup menus,  a submit button (named “ send ” ), and  a button to reset the entire form, erasing all user input.

COMP111 Lecture 22 / Slide 22 Bill ’ s Fans Initial Screen (1)  Here is the initial screen and default values the user sees:

COMP111 Lecture 22 / Slide 23 Bill ’ s Fans Initial Screen (in HTML) Bill Gates Fans Bill Gates Fan Page Your name: What is Bill? cheap rich powerful How many billion US dollars does Bill have?

COMP111 Lecture 22 / Slide 24 Bill ’ s Fans Initial Screen (2)  The user fills in the form:

COMP111 Lecture 22 / Slide 25 Bill ’ s Fans Result Screen (1)  The resulting screen after the hitting “ send ” :

COMP111 Lecture 22 / Slide 26 Bill ’ s Fans Result Screen (2)  The resulting screen after the re-submitting the correct value:

COMP111 Lecture 22 / Slide 27 Bill ’ s Fans page 1 (Perl) #!/usr/local/bin/perl5 -w # Bill Gates CGI program v. 2 use strict; use CGI qw(:standard); print header(), start_html("Bill Gates Fans"); print h1("Bill Gates Fan Page"); if(param()){ # if the form has already been filled out my $who = param("name"); my $what = param("billWord"); my $howmuch = param("money"); if($howmuch == 100){ print p("Yes $who, Bill is $what, and he has 100,000,000 times more money than you!"); }else{ print p("Incorrect $who! Bill has US\$100 billion."); }

COMP111 Lecture 22 / Slide 28 Bill ’ s Fans page 2 (Perl) }else{ # first time, so display clean form print hr(), start_form(); print p("Your name: ", textfield("name")); print p("What is Bill? ", popup_menu("billWord", ["cheap", "rich", "powerful"])); print p("How many billion US dollars does Bill have? ", popup_menu("money", [1,10,100,1000])); print p(submit("send"), reset("clear")); print end_form; } print end_html();

COMP111 Lecture 22 / Slide 29 References  Why the square brackets around the arrays in the previous example? ["cheap", "rich", "powerful"] [1,10,100,1000]  The brackets create a reference (pointer) to an array.  popup_menu() expects an array reference as its second argument.  You can also create an array reference by using a backslash in front of a named array, as in : = qw(cheap, rich, powerful); print p("What is Bill? ", popup_menu("billWord",