home *** CD-ROM | disk | FTP | other *** search
/ PC User 2001 August / APC_Aug2001_CD2.iso / features / web_dev / files / perlbuilderev.exe / %MAINDIR% / parse.dat < prev    next >
Encoding:
Text File  |  2001-06-19  |  718 b   |  40 lines

  1. sub GetFormInput {
  2.  
  3.     (*fval) = @_ if @_ ;
  4.  
  5.     local ($buf);
  6.     if ($ENV{'REQUEST_METHOD'} eq 'POST') {
  7.         read(STDIN,$buf,$ENV{'CONTENT_LENGTH'});
  8.     }
  9.     else {
  10.         $buf=$ENV{'QUERY_STRING'};
  11.     }
  12.     if ($buf eq "") {
  13.             return 0 ;
  14.         }
  15.     else {
  16.          @fval=split(/&/,$buf);
  17.         foreach $i (0 .. $#fval){
  18.             ($name,$val)=split (/=/,$fval[$i],2);
  19.             $val=~tr/+/ /;
  20.             $val=~ s/%(..)/pack("c",hex($1))/ge;
  21.             $name=~tr/+/ /;
  22.             $name=~ s/%(..)/pack("c",hex($1))/ge;
  23.  
  24.             if (!defined($field{$name})) {
  25.                 $field{$name}=$val;
  26.             }
  27.             else {
  28.                 $field{$name} .= ",$val";
  29.                 
  30.                 #if you want multi-selects to goto into an array change to:
  31.                 #$field{$name} .= "\0$val";
  32.             }
  33.  
  34.  
  35.            }
  36.         }
  37. return 1;
  38. }
  39.  
  40.