GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  CGI::THIN (3)

.ds Aq ’

NAME

CGI::Thin - A very lightweight Parser for CGI Forms

CONTENTS

SYNOPSIS

use CGI::Thin;

my %cgi_data = &Parse_CGI ();

DESCRIPTION

This module is a very lightweight parser of CGI forms. And it has a special feature that it will return an array if the same key is used twice in the form. You can force an array even if only one value returned to avoid complications.

The hash %cgi_data will have all the form data from either a POST or GET form and will also work for multipart/form-data forms necessary for uploading files.

USAGE



  Functions

    * `CGI::Thin::Parse_CGI(@keys)
        The optional @keys will be used to force arrays to be returned.

        The function also has special features for getting multiple values for a
        single form key.  For example if we have this form...

          <input type="checkbox" name="color" value="red">red
          <input type="checkbox" name="color" value="green">green
          <input type="checkbox" name="color" value="blue">blue

        One of three things can happen.

        1)  The user does not select any color.
            So $cgi_data{color} will not exist.
        2)  The user selects exactly one color.
            So $cgi_data{color} will be the scalar value selected.
        3)  The user selects exactly more than one color.
            So $cgi_data{color} will be a reference to an array of the values selected.

        To fix this you could call the parser by giving it a list of keys that you want
        to force to be arrays.  In this case like...

          use CGI::Thin;
          my %cgi_data = &Parse_CGI (color);

        Now it they pick exactly one color, $cgi_data{color} will be a reference to
        an array of the one value selected.  And thus there will be no need for
        special cases later in the code.



BUGS

    Fixed

o Added %([0-9a-fA-F]{2} to the regular expression to avoid illegal escapes
o Now split the key/value pairs by [;&] not just the ampersand

    Pending

o Long headers lines that have been broken over multiple lines in multipart/form-data don’t seem to be handled.
o Large file uploads (like 150MB) will clobber main memory. One possible addition is to change how multipart/form-data is read and to spit files directly to the temp directory and return to the script a filename so it can be retreived from there.
o Any thoughts on adapting it for use withing a mod_perl environment?

Under Apache::Registry, which emulates a CGI environmnet, it should be. Under plain ol’ mod_perl, we need to interact with the Apache::Request class a bit instead of %ENV and STDIN.

This feature may be added in the next incarnation of the module, or possibly a companion CGI::Thin::Mod_Perlish may be created to do it if the code will be too different.

SEE ALSO

CGI::Thin::Cookies

SUPPORT



    Visit CGI::Thins web site at
        http://www.PlatypiVentures.com/perl/modules/cgi_thin.shtml
    Send email to
        mailto:cgi_thin@PlatypiVentures.com



AUTHOR



    R. Geoffrey Avery
    CPAN ID: RGEOFFREY
    modules@PlatypiVentures.com
    http://www.PlatypiVentures.com/perl



COPYRIGHT

This module is free software, you may redistribute it or modify in under the same terms as Perl itself.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 CGI::THIN (3) 2001-09-16

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.