CGI Programming with Perl

Symbols | 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

#PCDATA: 14.3. Document Type Definition
packages
package function, declaring Perl module package: 5.5.4. Custom Module
in Perl: 5.1.3. Standard and Object-Oriented Syntax
padding fields, character data types: 10.3.1. Creating a Database
param method: 5.2.2. Accessing Parameters
6.3.1. Syntax
file upload element, using as file handle: 5.2.4. File Uploads with CGI.pm
index keywords, retrieving: 5.2.2.3. Index queries
uploaded files, accessing names of: 5.2.4. File Uploads with CGI.pm
parameters
clearing all: 5.2.2.1. Modifying parameters
cookies: 11.3.1. Setting Cookies
restrictions applying to: 11.3.1. Setting Cookies
email addresses, passing through shells as: 9.1.1. Mailers and Shells
exporting to namespaces: 5.2.3. Exporting Parameters to a Namespace
forms
capturing to offline file: 15.3.3. Running Scripts from the Command Line
CGI.pm module, prompting for: 15.3.3. Running Scripts from the Command Line
passing as arguments to CGI scripts: 15.3.3. Running Scripts from the Command Line
looping as conditions: 6.3.1.2. Conditionals
modifying within CGI script: 5.2.2.1. Modifying parameters
passing without equal sign (=): 4.3. Decoding Form Input
parent processes: 8.2.4. fork and exec
parentheses () after XML element names: 14.3. Document Type Definition
parse_form_data (example script): 4.3. Decoding Form Input
parsers
HTML static documents: 6.3. HTML::Template
XML
different ways of parsing: 14.5. CGI Gateway to XML Middleware
syntax, simplicity of: 14.2. An Introduction to XML
validation rules, separating from: 14.3. Document Type Definition
writing: 14.4. Writing an XML Parser
XML::Parser: 14.5. CGI Gateway to XML Middleware
XML::Parser module: 14.3. Document Type Definition
parsing
CGI output with SSI: 6.2. Server Side Includes
cookies with CGI.pm: 11.3.1. Setting Cookies
HTML documents: 14.2. An Introduction to XML
inserting identifiers, code for: 11.1. Query Strings and Extra Path Information
for links: 11.1. Query Strings and Extra Path Information
for Perl code: 6.4. Embperl
URL encoding: 2.1.3. URL Encoding
XML documents
tag and: 14.3. Document Type Definition
without DTDs: 14.3. Document Type Definition
partial headers: 3.3.1. Partial Headers
Location header: 3.3.1.2. Forwarding to another URL
Status header: 3.3.1.3. Specifying status codes
passwords: 2.4.2.10. WWW-Authenticate
401 status code responses, asking for: 3.3.1.3. Specifying status codes
attributes, password fields: 4.2.3.2. Password fields
encrypted, in user file: 2.3.2.4. Authorization
GET requests, including for: 4.2.3.2. Password fields
Password element: 7.2.1.1. Validating elements
password fields, representing with characters: 4.2.3.2. Password fields
paths
cgi in URL: 1.4.1.1. Configuring by directory
default, Apache installation: 1.4. Web Server Configuration
filenames, varying delimiters among operating systems: 5.2.4. File Uploads with CGI.pm
filesystem, providing for files included in templates: 6.3.1.3. Including other files
full, creating to files: 12.2. Searching One by One, Take Two
full vs. relative in relative URLs: 2.1.2. Absolute and Relative URLs
index: 12.3.1. Search Application
default: 12.3. Inverted Index Search
specifying to: 12.3. Inverted Index Search
invalid, to interpreted scripting languages: 15.1.2. The Pound-Bang
to sendmail program from procmail: 9.7.1. Autoreply from nobody
URLs: 2.1.1. Elements of a URL
12.3.1. Search Application
extra information, maintaining state with: 11.1. Query Strings and Extra Path Information
for CGI scripts: 2.1.1. Elements of a URL
passing unique identifiers as extra information: 11. Maintaining State
protectedNews module (example): 2.3.2.4. Authorization
relative vs. full: 2.1.2. Absolute and Relative URLs
virtual paths: 1.4.1.1. Configuring by directory
Windows system files, browser handling of: 5.2.4. File Uploads with CGI.pm
PATH_TRANSLATED environment variable: 11.1. Query Strings and Extra Path Information
PDF (Portable Document Format): 13.1.4. PDF
Image::Magick module, support for: 13.5.3. PDF and PostScript Support
PDK (Perl Development Kit), obtaining from ActiveState web site: 15.3.5.3. ActiveState Perl debugger
peformance, Perl CGI programs
Perl techniques for improving
localizing variables with my: 17.1.3. Localize Variables with my
SelfLoader module, using: 17.1.6. SelfLoader
shell, avoiding: 17.1.8. Avoid the Shell
slurping, avoiding: 17.1.4. Avoid Slurping
undef vs. (): 17.1.5. undef Versus ( )
percent sign (%)
hashes, use of: 12.3.1. Search Application
14.5. CGI Gateway to XML Middleware
URL-encoded characters: 4.1. Sending Data to the Server
decoding: 4.3. Decoding Form Input
representing: 2.1.3. URL Encoding
performance and temporary files, named vs. anonymous: 10.1.3.2. Named temporary files
performance, Perl CGI programs
Perl techniques for improving: 17.1. Basic Perl Tips, Top Ten
autouse feature: 17.1.7. autouse
benchmarking code: 17.1.1. Benchmark Your Code
benchmarking modules: 17.1.2. Benchmark Modules, Too
existing solutions, finding: 17.1.9. Find Existing Solutions for Your Problems
regular expressions, using: 17.1.10. Regular Expressions
period (.) or dash (-), starting filenames with: 5.2.4. File Uploads with CGI.pm
5.2.4. File Uploads with CGI.pm
perl interpreter: 1.3.2. Alternatives to CGI
(see also interpreters)
embedding within web server: 1.3.2. Alternatives to CGI
Perl language
aliases for imported symbols: 5.1.3. Standard and Object-Oriented Syntax
buffering output to STDOUT for web server: 3.1.1.2. STDOUT
capitalization conventions: 16.2. Coding Guidelines
CGI (see CGI programs, CGI)
chr function, converting hexadecimal values to characters: 2.1.3. URL Encoding
coding techniques, avoiding bugs with: 15.2. Perl Coding Techniques
binmode, use of: 15.2.7. Use binmode
checking status of system calls: 15.2.2. Check Status of System Calls
file locking: 15.2.5. File Locking
strict module, using: 15.2.1. Use strict
unbuffering output stream: 15.2.6. Unbuffer Output Stream
using with Tk via Tk.pm: 15.3.5.2. ptkdb
commands in Embperl documents, surrounding with brackets: 6.4.2.1. Embperl code blocks
data structures
printing with Data::Dumper module: 15.3.4. Dumping Variables
related URLs and subsequent related URLs: 14.5. CGI Gateway to XML Middleware
data types (see data types)
DBI, using with: 10.4. DBI
DBM files, storing as objects in: 10.2.2. MLDBM
debugger: 15.3.5. Debuggers
15.3.5.3. ActiveState Perl debugger
(see also debugging)
ActiveState debugger: 15.3.5.3. ActiveState Perl debugger
documentation for: 15.3.5.1. The Perl debugger
default input record separator ($/): 12.3. Inverted Index Search
embedding within Apache web server: 17.3. mod_perl
Embperl module, shifting Perl code into HTML documents: 6.4. Embperl
end-of-line characters, translating to \\\\n: 5.2.4. File Uploads with CGI.pm
FastCGI and: 1.3.2. Alternatives to CGI
forking: 8.2.3. Security Strategies
functions vs. methods: 5.1.3. Standard and Object-Oriented Syntax
grep function: 12.2. Searching One by One, Take Two
here documents: 5.4.2. Here Documents
libraries, storing in site_perl directory: 5.5.4. Custom Module
linefeeds and carriage returns on different operating systems: 3.3.1.1. Outputting documents
list vs. scalar context: 2.4.2.4. Date
mailers: 9.6. Perl Mailers
modules: 11.1. Query Strings and Extra Path Information
B. Perl Modules
Apache::ASP: 1.3.2. Alternatives to CGI
CGIBook::UserTracker: 11.1. Query Strings and Extra Path Information
creating your own: 5.5.4. Custom Module
HTML::Mason module: 6.5. Mason
LWP module: 8.2.5. Trusting the Browser
open source: 1.3.1. Why Perl?
standard Perl script vs.: 5.5.4. Custom Module
WDDX.pm: 7.3.1. WDDX
XML::Parser: 14.3. Document Type Definition
newsgroups: A.6. Newsgroups
packages: 5.1.3. Standard and Object-Oriented Syntax
performance of CGI scripts, improving: 17.1. Basic Perl Tips, Top Ten
autouse feature: 17.1.7. autouse
benchmarking: 17.1.1. Benchmark Your Code
existing solutions, finding: 17.1.9. Find Existing Solutions for Your Problems
localizing variables with my: 17.1.3. Localize Variables with my
regular expressions, using: 17.1.10. Regular Expressions
SelfLoader module, using: 17.1.6. SelfLoader
shell, avoiding: 17.1.8. Avoid the Shell
slurping, avoiding: 17.1.4. Avoid Slurping
undef vs. (): 17.1.5. undef Versus ( )
pipes to external programs: 8.2.2. User Input and the Shell
PPM (Perl Package Manager): 10.4.1. Using DBI
printing, STDOUT and: 1.2. Introduction to CGI
qq// operator: 5.4.2. Here Documents
quotemeta function: 12.2. Searching One by One, Take Two
scalar representations of array references: 4.3. Decoding Form Input
STDERR, not buffering: 3.1.1.3. STDERR
storage locations, different operating systems: 15.1.2. The Pound-Bang
syntax errors, checking with -wc switch: 15.1.4. "Malformed" Header
taint mode: 8.4. Perl's Taint Mode
common problems with: 8.4.5. Common Problems with Taint Mode
data monitored by: 8.4.2. What Is Monitored by Taint Mode
how it works: 8.4.1. How Taint Works
reasons for using: 8.4.4. Why Use Taint Mode?
removing taint: 8.4.3. How Taintedness Is Removed
text files (see text files)
tie mechanism: 10.1.1.1. flock
turning on warnings and taint checking: 1.2.1. Sample CGI
underscore (_), use in: 16.2. Coding Guidelines
version, getting with -v flag: 15.1.2. The Pound-Bang
XML::Parser library, online information: 14.5. CGI Gateway to XML Middleware
perldoc (documentation viewer): B.2. perldoc
PerlEx module: 17. Efficiency and Optimization
PerlMagick module (see Image::Magick module: 13.5. PerlMagick
permanent moves, URLs of requested resources: 3.3.1.3. Specifying status codes
permissions
applications, CGI errors and: 15.1.1. Application Permissions
CGI programs
checking: 15.1.1. Application Permissions
configuring web server to set: 3.1. The CGI Environment
execute, turning offf: 1.4.1.2. Configuring by extension
forbidden (403 status code): 3.3.1.3. Specifying status codes
email users, security risks of: 9.1.2. False Identities
files
changing with chmod command: 15.1.1. Application Permissions
data storage: 8.5.3. File Permissions
server running as user: 10.1.2. Write Permissions
hash files, read/write: 10.2.1. DB_File
text files, writing to: 10.1.2. Write Permissions
phone directory interface (consolidated), using CGI middleware: 14. Middleware and XML
PHP programming language: 1.3.2. Alternatives to CGI
physical text wrapping: 4.2.5. The <TEXTAREA> Tag
PID, checking for child processes: 15.2.3. Is It Open?
pie charts
commute_pie.cgi script: 13.4.2. GD::Graph
creating with GD::Graph::pie module: 13.4.2. GD::Graph
three dimensional, creating with GD::Graph::pie3d: 13.4.3. GD::Graph3D
pipes
email messages through Perl scripts: 9.7.2. Forwarding to Another User
to external applications: 8.2.1. Calling External Applications
checking execution within: 15.2.3. Is It Open?
mail clients: 9.1.1. Mailers and Shells
replacing with fork: 8.2.4. fork and exec
security risks: 8.2.2. User Input and the Shell
opening to fgrep command for reading: 12.1. Searching One by One
processes, checking status with kill function: 15.2.3. Is It Open?
pipes (|), delimiting files with: 10.1.4. Delimiters
plain buttons: 4.2.3.9. Plain buttons
plus sign (+)
encoding spaces in URLs: 2.1.3. URL Encoding
keywords, separating in queries: 5.2.2.3. Index queries
replacing spaces in URL text: 4.1. Sending Data to the Server
XML elements: 14.3. Document Type Definition
PNG images: 3.4.1. Check the Client Browser
Chart::PNGgraph: 13.4.2. GD::Graph
converting to GIF or JPEG: 13.5.2. Converting PNGs to GIFs or JPEGs
features, added over GIF: 13.1.2. PNG
generating with GD module: 13.3. Generating PNGs with GD
linking to HTML pages: 3.4.1. Check the Client Browser
point and line charts combination, creating with GD::Graph::linespoints module: 13.4.2. GD::Graph
point charts, creating with GD::Graph::points module: 13.4.2. GD::Graph
pointers to directories, CGI application organization and: 16.1.2. Use Directories to Organize Your Projects
port numbers: 2.1.1. Elements of a URL
ommitting in URLs: 2.1.2. Absolute and Relative URLs
Portable Network Graphic image format (see PNG images)
POSIX module: 10.1.3.2. Named temporary files
POST requests: 2.3.1.4. POST
300-level status code responses to: 3.3.1.3. Specifying status codes
Content-length and Content-type fields: 2.3.2.2. Content-Length
Content-length header, referring to: 3.1.1.1. STDIN
form data to URLs with keywords: 5.2.2.3. Index queries
limiting size of: 5.1.1. Denial of Service Attacks
mailing list form (example): 4.1. Sending Data to the Server
options, including in: 4.1. Sending Data to the Server
query strings, accessing from URLs: 4.3. Decoding Form Input
query strings and: 5.2.2.2. POST and the query string
query_string method and: 5.2.1.4. query_string
URL tampering and: 8.2.5. Trusting the Browser
PostScript image file format: 13.5.3. PDF and PostScript Support
pound-bang (#!) line: 15.1.2. The Pound-Bang
-c flag and: 15.3.1. Check Syntax
PPM (Perl Package Manager): 10.4.1. Using DBI
Pragma: no-cache header: 3.4.3. Restricting Image Hijacking
pragmas
coding style guide, covering in: 16.2. Coding Guidelines
depending on variable scope, Embperl module: 6.4.2.2. Variable scope
preferences for web document use, storing as cookies: 11.3. Client-Side Cookies
prefixes, removing from words: 12.3. Inverted Index Search
prepare command, passing SQL query to: 10.4.1.3. Database querying
print statements
generating HTML output with: 5.4.1. Lots of print Statements
here documents: 1.2.1. Sample CGI
printenv command: 6.2.2. Format
printing
Embperl blocks: 6.4.2.1. Embperl code blocks
HTTP headers in error handling: 5.5.3. Error Subroutines
image files, determining increments: 3.4.1. Check the Client Browser
multiple items in lists: 5.3.3. Standard HTML Elements
Perl data structures with Data::Dumper: 15.3.4. Dumping Variables
related URLs: 14.5. CGI Gateway to XML Middleware
Set-Cookie header: 11.3.1. Setting Cookies
status codes with Status header: 3.3.1.3. Specifying status codes
to STDOUT: 1.2. Introduction to CGI
3.1.1.2. STDOUT
tag: 5.3.3. Standard HTML Elements
variable values: 15.3.4. Dumping Variables
process identifier (PID): 8.2.4. fork and exec
processes
child processes
checking PID of: 15.2.3. Is It Open?
creating with pipe connected: 8.2.4. fork and exec
creating separate to handle CGI scripts: 1.3.2. Alternatives to CGI
local, as clients: 14.1. Communicating with Other Servers
parent processes: 8.2.4. fork and exec
in pipes, checking status with kill function: 15.2.3. Is It Open?
remote, as servers: 14.1. Communicating with Other Servers
processing images, Image::Magick module: 13.5.4. Image Processing
procmail: 9.7. procmail
forwarding email messages to another user: 9.7.2. Forwarding to Another User
program logic, bracket pairs in Embperl: 6.4.2.1. Embperl code blocks
programming in the large (see strategic programming)
programming languages
ASP, support for: 1.3.2. Alternatives to CGI
code file extensions: 2.6.2. Internationalization
content negotiation and: 2.6. Content Negotiation
exchanging data between: 7.3.1. WDDX
interpreted languages, delays caused by: 17. Efficiency and Optimization
negotiation for static documents: 2.6.2. Internationalization
programs, CGI
503 Service Unavailable status responses: 3.3.1.3. Specifying status codes
address book: 10.4.2.2. Address book CGI script
application (example): 1.2.1. Sample CGI
architectural guidelines (see architectural guidelines, CGI programs)
bookmarklets, using with: 7.4.2. Bookmarklets and CGI
buffering, server handling of: 3.3.2. Complete (Non-Parsed) Headers
configuring: 1.4.1. Configuring CGI Scripts
1.4.1.2. Configuring by extension
Content-type field, use in: 2.4.2.3. Content-Type
cookies, testing for: 11.3.2. Testing for Cookies
cookie_test.cgi script: 11.3.2. Testing for Cookies
current_time.cgi script: 6.3.1. Syntax
data, converting to JavaScript: 7.3.1. WDDX
debugging (see debugging)
15.3.5.3. ActiveState Perl debugger
common errors: 15.1. Common Errors
debugging tools: 15.3. Debugging Tools
Perl coding techniques for avoiding bugs: 15.2. Perl Coding Techniques
development (see development, CGI programs)
coding guidelines: 16.2. Coding Guidelines
disabling file uploads and limiting POST request size: 5.1.1. Denial of Service Attacks
dynamic generation of web server response: 1.2. Introduction to CGI
efficiency and optimization: 17. Efficiency and Optimization
FastCGI, using: 17.2. FastCGI
mod_perl, using: 17.3. mod_perl
Perl techniques for: 17.1. Basic Perl Tips, Top Ten
email, sending with: 9. Sending Email
email addresses: 9.2. Email Addresses
procmail: 9.7. procmail
security: 9.1. Security
structure of Internet email: 9.3. Structure of Internet Email
embedding output from: 6.2.6. Executing CGI Programs
embpcgi.pl script: 6.4.1.3. embpcgi.pl
encoding/decoding tab-delimited data and end-of-line characters: 10.1.4. Delimiters
env_info.cgi script: 3.2.2. Examining Environment Variables
output: 3.2.2. Examining Environment Variables
environment variables: 3.2. Environment Variables
examples: 1.2.1. Sample CGI
listing for specific web server: 3.2.2. Examining Environment Variables
examples: 3.4. Examples
image hijacking, restricting: 3.4.3. Restricting Image Hijacking
image, sending after checking browser media formats: 3.4.1. Check the Client Browser
user authentication and identification: 3.4.2. User Authentication and Identification
feedback_sendmail.cgi script: 9.4.1. Command-Line Options
file handles: 3.1.1. File Handles
gateway to XML middleware: 14.5. CGI Gateway to XML Middleware
graphic images, creating: 13. Creating Graphics on the Fly
image data, outputting: 13.2. Outputting Image Data
mixed graphs (commute_mixed.cgi): 13.4.2. GD::Graph
pie charts (commute_pie.cgi): 13.4.2. GD::Graph
grep_search1.cgi script: 12.1. Searching One by One
how they work: 3. The Common Gateway Interface
HTML, alternatives for outputting: 5.4. Alternatives for Generating Output
HTTP header lines, returning: 1.2. Introduction to CGI
indexed_search.cgi script: 12.3.1. Search Application
music_browser.cgi script: 7.3.2. Example
output: 3.3. CGI Output
complete (non-parsed) headers: 3.3.2. Complete (Non-Parsed) Headers
partial headers: 3.3.1. Partial Headers
printing to STDOUT: 3.1.1.2. STDOUT
parameters
accessing: 5.2.2. Accessing Parameters
modifying within: 5.2.2.1. Modifying parameters
parse_form_data (example): 4.3. Decoding Form Input
parsing HTML documents and inserting identifiers: 11.1. Query Strings and Extra Path Information
permissions to run, forbidden (403) status code and: 3.3.1.3. Specifying status codes
requests for static HTML page, handling
unique identifiers: 11.1. Query Strings and Extra Path Information
security: 8. Security
encryption: 8.3. Encryption
trusting browsers: 8.2.5. Trusting the Browser
user input, handling: 8.2. Handling User Input
separate process, requirement for execution: 1.3.2. Alternatives to CGI
shoppe.cgi: 11.2. Hidden Fields
checkout page: 11.2. Hidden Fields
shopping cart page: 11.2. Hidden Fields
welcome page: 11.2. Hidden Fields
SSL/TLS connections and: 2.2. HTTP
status codes: 2.4.1. The Status Line
3.3.1.3. Specifying status codes
strict command, advantages of use: 1.2.1. Sample CGI
taint mode, reasons to use with: 8.4.4. Why Use Taint Mode?
text files (see text files)
URLs for: 1.2.2. Invoking CGI Scripts
2.1.1. Elements of a URL
projects, home pages for: A.5. Project Home Pages
protected realm, indicating with 401 status code: 3.3.1.3. Specifying status codes
/protected (URL paths): 2.3.2.4. Authorization
protocol and version string (status line): 3.3.2. Complete (Non-Parsed) Headers
protocols
cookie handling by browsers: 11.3. Client-Side Cookies
header (web server response), listing in: 1.2. Introduction to CGI
HTTP (see HTTP)
IP (Internet Protocol): 6.2.3. Environment Variables
SMTP: 9.6. Perl Mailers
SSL (Secure Socket Layer)POST requests: 2.2. HTTP
in URLs: 2.1.1. Elements of a URL
proxies: 2.5. Proxies
image caching and: 3.4.3. Restricting Image Hijacking
multiple users connecting via: 11. Maintaining State
ptkdb, PerlTk debugger: 15.3.5.2. ptkdb
PUT method: 2.3.1.1. PUT and DELETE


Symbols | 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


Copyright © 2001 O'Reilly & Associates, Inc. All Rights Reserved.

Категории