NAME
DTA::CAB::Server::HTTP::Handler::CGI - DTA::CAB::Server::HTTP::Handler class: CGI form processing
SYNOPSIS
##========================================================================
## PRELIMINARIES
use DTA::CAB::Server::HTTP::Handler::CGI;
##========================================================================
## Methods
$h = $class_or_obj->new(%options);
$bool = $h->prepare($server);
undef = $h->finish($server, $clientSocket);
\%params = $h->uriParams($hreq,%opts);
\%params = $h->contentParams($hreq,%opts);
\%params = $h->params($hreq,%opts);
\%vars = $h->cgiParams($srv,$clientConn,$httpRequest, %opts);
\%vars = $h->decodeVars(\%vars,%opts);
\$string = $h->decodeString(\$string,%opts); ##-- decodes in-place;
\$string = $h->decodeStringRef(\$string,%opts); ##-- decodes in-place;
$enc = $h->messageEncoding($httpMessage,$defaultEncoding);
$enc = $h->requestEncoding($httpRequest,\%vars);
\%vars = $h->trimVars(\%vars,%opts);
\%vars = $h->addVars(\%vars,\%push,$mode='push');
DESCRIPTION
Methods
- new
-
$h = $class_or_obj->new(%options);
%option, %$h:
encoding => $defaultEncoding, ##-- default encoding (UTF-8) allowGet => $bool, ##-- allow GET requests? (default=1) allowPost => $bool, ##-- allow POST requests? (default=1) pushMode => $mode, ##-- push mode for addVars (dfefault='push')
- prepare
-
$bool = $h->prepare($server);
Just returns 1.
- finish
-
undef = $h->finish($server, $clientSocket);
Clean up handler state after run(). Override deletes @$h{qw(cgi vars cgisrc)}.
- uriParams
-
\%params = $h->uriParams($hreq,%opts)
Parses GET-style form parameters from $hreq->uri.
- contentParams
-
\%params = $h->contentParams($hreq,%opts);
Parses POST-style content parameters from $hreq. If $hreq content-type is neither 'application/x-www-form-urlencoded' nor 'multipart/form-data', but content is present, returns $hreq content as the value of the pseudo-variable $opts{defaultName}. Known %opts:
defaultName => $name, ##-- default parameter name (default='POSTDATA') defaultCharset => $charset, ##-- default charset
- params
-
\%params = $h->params($hreq,%opts);
Wrapper for $h->pushVars($h->uriParams(),$h->contentParams()) %opts are passed to "uriParams"(), "contentParams"().
- cgiParams
-
\%vars = $h->cgiParams($srv,$clientConn,$httpRequest, %opts);
parses cgi parameters from client request
only handles GET or POST requests
wrapper for $h->uriParams(), $h->contentParams()
%opts are passed to uriParams, contentParams
- decodeVars
-
\%vars = $h->decodeVars(\%vars,%opts);
Decodes cgi-style variables using $h->decodeString($str,%opts). Known %opts:
vars => \@vars, ##-- list of vars to decode (default=keys(%vars)) someKey => $someVal, ##-- passed to $h-E<gt>decodeString()
- decodeString
-
\$string = $h->decodeString(\$string,%opts); ##-- decodes in-place; $decoded = $h->decodeString( $string,%opts); ##-- decode by copy
Wrapper for "decodeStringRef"().
- decodeStringRef
-
\$string = $h->decodeStringRef(\$string,%opts); ##-- decodes in-place;
Decodes string in-place as $h->{encoding}, optionally handling HTML-style escapes. Known %opts:
%opts: allowHtmlEscapes => $bool, ##-- whether to handle HTML escapes (default=false) encoding => $enc, ##-- source encoding (default=$h->{encoding}; see also $h->requestEncoding())
- messageEncoding
-
$enc = $h->messageEncoding($httpMessage,$defaultEncoding);
Atempts to guess messagencoding from (in order of descending priority):
HTTP::Message header Content-Type charset variable
HTTP::Message header Content-Encoding
$defaultEncoding (default=undef)
- requestEncoding
-
$enc = $h->requestEncoding($httpRequest,\%vars);
Attempts to guess request encoding from (in order of descending priority):
CGI param 'encoding', from $vars->{encoding}
HTTP::Message encoding via $h->messageEncoding($httpRequest)
$h->{encoding}
- trimVars
-
\%vars = $h->trimVars(\%vars,%opts);
Trims leading and trailing whitespace from selected values in \%vars. Known %opts:
vars => \@vars, ##-- list of vars to trim (default=keys(%vars))
- addVars
-
\%vars = $h->addVars(\%vars,\%push,$mode='push');
CGI-like variable push; destructively adds \%push onto \%vars.
if $mode is 'push', dups are treated as array push
if $mode is 'clobber', dups in %push clobber values in %vars
if $mode is 'keep', dups in %push are ignored
AUTHOR
Bryan Jurish <moocow@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2010-2019 by Bryan Jurish
This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.24.1 or, at your option, any later version of Perl 5 you may have available.
SEE ALSO
DTA::CAB::Server::HTTP::Handler(3pm), DTA::CAB::Server::HTTP(3pm), DTA::CAB(3pm), perl(1), ...