CGI Programming Using Perl - PRL480
Duration: 3 days
Audience: Web site developers wanting to create interactive Web pages.
Prerequisites: Familiarity with HTML forms. Programming experience is required. Basic UNIX skills and the ability to use vi or a basic text editor are also required.
Topics:
The Internet and the Web
- TCP/IP and Ports
- DNS vs. Hosts Files
- Servers and Clients
- Client/Server Protocols
Browsers and Servers
- URLs
- WEB Browsers and Servers
- The Hypertext Transfer Protocol
- HTTP Requests and Responses
- HTTP Headers
- HTTP Requests
- Mime Types
Introduction to CGI
- HTML Tag Stucture
- HTML Document Structure
- URLs and CGI
- CGI Programs
- Running and Debugging from the Command Line
- Running and Debugging from a Browser
- Handling an HTML Form with CGI
- Generating HTML
CGI and Perl
- Perl
- Perl Programs
- Why Use CGI.pm (and Where is It?)
- Running and Debugging from the Command Line
- Generating HTML with CGI.pm
- Running and Debugging from a Browser
Generating HTML
- Introduction to CGI.pm
- How to use CGI.pm Online Documentation
- CGI.pm Rules for General HTML Tags
- CGI.pm Rules for HTML Form Tags
- Named vs. Positional Parameters in CGI.pm
Generating Forms
- General Structure of HTML Forms
- Form Element Tags
- Pushbuttons
- Radiobuttons
- Checkboxes
- Popups and Listboxes
- Textfields, Passwords, and Textareas
CGI Data Flow Architecture
- URL Encoding and Decoding
- Data Flow Between Browsers and Servers
- GET vs. POST
- Which to Use?
- CGI Environment Variables
- Accessing CGI Environment Variables
Processing Form Data
- Static Forms
- Dynamic Forms
- Controlling Flow with User Input
- Accessing Form Data Using CGI.pm
- The param Method of CGI.pm
- Sticky Widgets
- Validating Input from the Browser
- Command Line Debugging
Client-Side Statefulness
- Stateful vs Stateless
- Why use Stateful CGI Applications?
- Program to Program Interaction
- Stateful Access with Hidden Fields
- Multiple Forms and Hidden Fields
- Stateful Access with Netscape Cookies
- Using Cookies with CGI.pm
- Cookie Management
Database Access
- Server-Side Statefulness
- Flat-File Databases
- Structuring Text Data
- File Permissions and Flat-File Databases
- Perl DBM Interface
- Perl DBI/DBD Interface
- Issues With Statefulness
Additional Web Programming Features
- Extra Path Information
- Frames
- Server Side Includes (SSI)
- The exec command
- A Page Hit Counter Using SSI
- Animation Description
- Netscape Server Push
- Client Pull
- The GD.pm Module
CGI Security Issues
- Browser to Server Security Issues
- CGI Security Issues
- CGI Interaction with the Operating System
- Database / File System Overflow
- CGI and User Authentication
Appendix 1 - Overview of Perl
- What is Perl?
- Running Perl Programs
- Sample Program
- Another Sample Program
- Yet Another Example
Appendix 2 - Perl Variables
- Three Types of Variables
- Variable Names and Syntax
- Variable Naming
- Lists
- Scalar and List Contexts
- Hashes
- Hash Functions
Appendix 3 - Flow Control
- Simple Statements
- Simple Statement Modifiers
- Compound Statements
- The next, last, and redo Statements
- The for Loop
- The foreach Loop



