CGI.pm: a Perl Module for Web CGI Programming

Authorized User

CGI.pm: a Perl Module for Web CGI Programming

What you can do with CGI.pm

What CGI.pm Does

CGI is easy; I can do it myself!

First Example

Output from 1st Example

What it Looks Like

CGI Script Basics, Part 1

How CGI Scripts are Executed

The HTTP Header

The header() Function

The -status Argument

header() Arguments

HTML Shortcuts

Using HTML Shortcuts

HTML Shortcuts Nest

HTML Shortcuts are Distributive

HTML 3.2 Extensions

What it Looks Like

Other Importable Sets

Creating New Shortcuts

Non-Standard Shortcuts

start_html()

start_html() Arguments

A start_html() Example

What it Looks Like

CGI Environment

Access to CGI Environment

A Dynamic Page

Dynamic Page Output

Interactive Scripts

Creating Fill-Out Forms

start_form() & end_form()

start_form parameters

Form Element Arguments

textfield()

popup_menu()

popup_menu() output

scrolling_list()

scrolling_list() output

Changing List Labels

submit(), reset() & defaults()

Putting it Together

How it Looks

Retrieving the Field Values

Complete Example

What it Looks Like

"Sticky" Field Values

Example Stickiness

Manually Setting Fields

Importing CGI Fields

Redirection

Intermission

Part 2: Advanced Techniques

Debugging from Command Line

2 Ways to Run Without Waiting

Handling Funny Characters

Object-Oriented Style

Example OO Style

CGI Object Initialization

Saving & Restoring CGI Objects

Format of a Saved CGI Object

Reading States from a Database

Accessing Internal CGI Object

File Upload

Generating Fill-Out Form

Reading the File

Other Things You Can Do

Accessing Temporary File

Cookies

Working with Cookies

Creating & Sending Cookies

cookie() arguments

-value flexible

Sending Multiple Cookies

Retrieving Cookies

Cascading Style Sheets

Defining a Style Sheet

Stylesheet example

JavaScript

Attach JavaScript to Page with start_html()

Creating Event Handlers

Clickable Image Maps

Using Frames

NPH Scripts

Activating NPH Mode

mod_perl

FastCGI

Server Push

Better Error Reporting

Using CGI::Carp

Send error messages to log file

Future Directions for CGI.pm

URL FOR THIS TALK