CGI::PathInfo - A lightweight CGI processing package for using PATH_INFO like GET method form parameters
CGI::PathInfo - A lightweight CGI processing package for using PATH_INFO
like GET method form parameters
use CGI::PathInfo;
my $path_info = CGI::PathInfo->new;
my ($form_field_value) = $path_info->param('some_field_name');
Provides a micro-weight equivalent to the CPAN CGI.pm module that permits
the use of the Apache CGI environment variable 'PATH_INFO' as a functional
equivalent to the GET method 'QUERY_STRING'.
Rather than attempt to address every possible need of a CGI programmer, it
provides the _minimum_ functions needed for CGI such as parameter decoding,
URL encoding and decoding.
The parameters decoding interface is somewhat compatible with the CGI.pm
module. No provision is made for generating HTTP or HTML on your behalf -
you are expected to be conversant with how to put together any HTML or HTTP
you need.
1.00 21 July 2000 - Initial public release.
- new;
-
Creates a new instance of the CGI::PathInfo object and decodes any
'PATH_INFO' parameters.
Example:
use CGI::PathInfo;
my $path_info = CGI::PathInfo->new;
The defaults are for the parameters to be seperated by '/' characters with
name/value pairs linked by '-' and with leading or trailing '/' characters
ignored.
Ex:
$ENV{'PATH_INFO'} = '/yesterday-monday/tomorrow-wednesday';
decodes to
'yesterday' -> 'monday'
'tomorrow' -> 'wednesday'
Values are read using the 'param' method.
Any of the defaults may be overridden by specifying them in the invokation
of 'new'.
Example:
my $path_info = CGI::PathInfo->new({ Eq => '=',
SplitOn => '&',
});
It is probably a Bad Idea (tm) to set the Eq or SplitOn values to a letter
or a number (A-Za-z0-9) unless you are a wizard at encodings.
The defaults were chosen to maximize the likelyhood that CGI backed URLs
will be crawled by search engines and that MSIE won't try something stupid
because of a '.tla' on a URL.
- param([$fieldname]);
-
Called as $path_info->param(); it returns the list of all defined parameter fields in the same order they
appear in the data in PATH_INFO.
Called as $path_info->param($fieldname); it returns the value (or array of values for multiple occurances of the
same field name) assigned to that $fieldname. If there is more than one
value, the values are returned in the same order they appeared in the data
from user agent. If called in a scalar context when several values are
present for specified parameter, the *first* value will be returned.
Examples:
my (@form_fields) = $path_info->param;
my (@multi_pick_field) = $path_info->param('pick_field_name');
my ($form_field_value) = $path_info->param('some_field_name');
You can also use the param method to set param values to new values. These
values will be returned by this CGI::PathInfo object as if they had been
found in the originally processed PATH_INFO data. This will not affect a
seperately created instance of CGI::PathInfo.
Examples:
$path_info->param( 'name' => 'Joe Shmoe' );
$path_info->param({ 'name' => 'Joe Shmoe', 'birth_date' => '06/25/1966' });
$path_info->param({ 'pick_list' => ['01','05','07'] });
- calling_parms_table;
-
Returns a formatted HTML table containing all the PATH_INFO parameters for
debugging purposes
Example:
print $path_info->calling_parms_table;
- url_encode($string);
-
Returns a URL encoding of the input string. Anything except 0-9a-zA-Z is
escaped to %xx form.
The idea is to reserve all other characters for potential use as parameter
or key/value seperators.
Example:
my $url_encoded_string = $path_info->url_encode($string);
- url_decode($string);
-
Returns URL *decoding* of input string (%xx substitutions are decoded to
their actual values).
Example:
my $url_decoded_string = $path_info->url_decode($string);
None known.
Who knows?
Benjamin Franz <snowhare@nihongo.org>
Version 1.00 22 July 2000
Copyright (c) Benjamin Franz and FreeRun Technologies July 2000. All rights
reserved.
This program is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.
|