Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ParseFormData(3)      User Contributed Perl Documentation     ParseFormData(3)

NAME
       Apache::ParseFormData - Perl extension for dealing with client request
       data

SYNOPSIS
	 use Apache::RequestRec	();
	 use Apache::RequestUtil ();
	 use Apache::Const -compile => qw(DECLINED OK);
	 use Apache::ParseFormData;

	 sub handler {
	   my $r = shift;
	   my $apr = Apache::ParseFormData->new($r);

	   my $scalar =	'abc';
	   $apr->param('scalar_test' =>	$scalar);
	   my $s_test =	$apr->param('scalar_test');
	   print $s_test;

	   my @array = ('a', 'b', 'c');
	   $apr->param('array_test' => \@array);
	   my @a_test =	$apr->param('array_test');
	   print $a_test[0];

	   my %hash = (
	     a => 1,
	     b => 2,
	     c => 3,
	   );
	   $apr->param('hash_test' => \%hash);
	   my %h_test =	$apr->param('hash_test');
	   print $h_test{'a'};

	   $apr->notes->clear();

	   return Apache::OK;
	 }

ABSTRACT
       The Apache::ParseFormData module	allows you to easily decode and	parse
       form and	query data, even multipart forms generated by "file upload".
       This module only	work with mod_perl 2.

DESCRIPTION
       "Apache::ParseFormData" extension parses	a GET and POST requests, with
       multipart form data input stream, and saves any files/parameters
       encountered for subsequent use.

Apache::ParseFormData METHODS
   new
       Create a	new Apache::ParseFormData object. The methods from Apache
       class are inherited. The	optional arguments which can be	passed to the
       method are the following:

       temp_dir
	  Directory where the upload files are stored.

       disable_uploads
	  Disable file uploads.

	    my $apr = Apache::ParseFormData->new($r, disable_uploads =>	1);

	    my $status = $apr->parse_result;
	    unless($status == Apache::OK) {
	      my $error	= $apr->notes->get("error-notes");
	      ...
	      return $status;
	    }

       post_max
	  Limit	the size of POST data.

	    my $apr = Apache::ParseFormData->new($r, post_max => 1024);

	    my $status = $apr->parse_result;
	    unless($status == Apache::OK) {
	      my $error	= $apr->notes->get("error-notes");
	      ...
	      return $status;
	    }

   parse_result
       return the status code after the	request	is parsed.

   param
       Like CGI.pm you can add or modify the value of parameters within	your
       script.

	 my $scalar = 'abc';
	 $apr->param('scalar_test' => $scalar);
	 my $s_test = $apr->param('scalar_test');
	 print $s_test;

	 my @array = ('a', 'b',	'c');
	 $apr->param('array_test' => \@array);
	 my @a_test = $apr->param('array_test');
	 print $a_test[0];

	 my %hash = (
	   a =>	1,
	   b =>	2,
	   c =>	3,
	 );
	 $apr->param('hash_test' => \%hash);
	 my %h_test = $apr->param('hash_test');
	 print $h_test{'a'};

       You can create a	parameter with multiple	values by passing additional
       arguments:

	 $apr->param(
	   'color'    => "red",
	   'numbers'  => [0,1,2,3,4,5,6,7,8,9],
	   'language' => "perl",
	 );

       Fetching	the names of all the parameters	passed to your script:

	 foreach my $name (@names) {
	   my $value = $apr->param($name);
	   print "$name	=> $value\n";
	 }

   delete
       To delete a parameter provide the name of the parameter:

	 $apr->delete("color");

       You can delete multiple values:

	 $apr->delete("color", "nembers");

   delete_all
       This method clear all of	the parameters

   upload
       You can access the name of an uploaded file with	the param method, just
       like the	value of any other form	element.

	 my %file_hash = $apr->param('file');
	 my $filename =	$file_hash{'filename'};
	 my $content_type = $file_hash{'type'};
	 my $size = $file_hash{'size'};

	 my ($fh, $path) = $apr->upload('file_0');

	 for my	$form_name ($apr->upload()) {
	   my ($fh, $path) = $apr->upload($form_name);

	   while(<$fh>)	{
	     print $_;
	   }

	   my %file_hash = $apr->param($form_name);
	   my $filename	= $file_hash{'filename'};
	   my $content_type = $file_hash{'type'};
	   my $size = $file_hash{'size'};
	   unlink($path);
	 }

   set_cookie
       Set the cookies before send any printable data to client.

	 my $apr = Apache::ParseFormData->new($r);

	 $apr->set_cookie(
	   name	   => "foo",
	   value   => "bar",
	   path	   => "/cgi-bin/database",
	   expires => time + 3600,
	   secure  => 1,
	   domain  => ".capricorn.com",
	 );

       Get the value of	foo:

	 $apr->param('foo');

       Clean cookie:

	 $apr->set_cookie(
	   name	   => "foo",
	   value   => "",
	   expires => time - 3600,
	 );

SEE ALSO
       libapreq, Apache::Request

CREDITS
       This interface is based on the libapreq by Doug MacEachern.

AUTHOR
       Henrique	Dias, <hdias@aesbuc.pt>

COPYRIGHT AND LICENSE
       Copyright 2003 by Henrique Dias

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.0			  2020-08-29		      ParseFormData(3)

NAME | SYNOPSIS | ABSTRACT | DESCRIPTION | Apache::ParseFormData METHODS | SEE ALSO | CREDITS | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Apache::ParseFormData&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help