Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Denis Poznyakov                      2:5020/400     19 May 2004  13:15:41
 To : Andrei Protasovitski
 Subject : Re: Разобрать форму (нюанс)
 -------------------------------------------------------------------------------- 
 
 > Поделитесь деталями для нового велика!
 
 старое но рабочее
 
 =============
 sub _load_params {
     my @pairs=();
     my ($buffer,$boundary,$lenpairs,$i,$pair);
     my ($temp,$pozition,$header,$cd,$name,$fname,$value);
 
     if ($ENV{'CONTENT_TYPE'} and $ENV{'CONTENT_TYPE'} =~
 m(^multipart\/form-data)i) {
         if ($ENV{'REQUEST_METHOD'} ne 'POST') {
             print "Content-type: text/html;\n\nInvalid request method for
 multipart/form-data !\n"; exit;
         }
         binmode(STDIN); seek(STDIN,0,0);
         read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
         ($boundary) = $ENV{'CONTENT_TYPE'} =~ /boundary="([^"]+)"/;
         ($boundary) = $ENV{'CONTENT_TYPE'} =~ /boundary=(\S+)/ unless
 $boundary;
         $temp="--$boundary--\x0D\x0A";
         $boundary =  "--" . $boundary . "\x0D\x0A";
         $buffer = substr($buffer,0,index($buffer,$temp));
         @pairs = split(/$boundary/, $buffer);
         $lenpairs=@pairs;
         for ($i=1;$i<$lenpairs;$i++) {
             $pairs[$i] = substr($pairs[$i], 0, length($pairs[$i])-2);
             $pozition  = index($pairs[$i],"\r\n\r\n");
             $header    = substr($pairs[$i], 0, $pozition);
             ($cd)   = grep (/^\s*Content-Disposition:/i, $header);
             ($name) = $cd =~ /\bname="([^"]+)"/i;
             ($name) = $cd =~ /\bname=([^\s:;]+)/i unless defined $name;
             ($fname) = $cd =~ /\bfilename="([^"]*)"/i;
             ($fname) = $cd =~ /\bfilename=([^\s:;]+)/i unless defined
 $fname;
             $fname= substr($fname,rindex($fname,"\\")+1);
             $value= substr($pairs[$i], $pozition+4);
             if ($fname or $header =~ /Content-Type:/i) {
                 if ($header =~ /Content-Type:/i and $fname) {
                     $in_params{$name}=$fname;
                     $in_params{"src$name"}=$value;
                 } else {$in_params{$name}=''}
             } else {
                 $value = unescape($value);
                 if ($in_params{$name}) {
                     if (ref($in_params{$name}) eq 'ARRAY') {
                         push(@{$in_params{$name}},$value);
                     } else {
                         my @arr=();
                         push @arr, $in_params{$name}, $value;
                         $in_params{$name}=\@arr;
                     }
                 } else {$in_params{$name}=$value}
             }
         }
     }
     else {
         read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}||0);
         if (!$buffer) {$buffer=$ENV{'QUERY_STRING'}}
         if ($buffer) {
         foreach $pair (split(/&/, $buffer)) {
             ($name, $value) = split(/=/, $pair);
             $value = unescape($value);
 
             if ($in_params{$name}) {
                 if (ref($in_params{$name}) eq 'ARRAY') {
                     push(@{$in_params{$name}},$value);
                 } else {
                     my @arr=();
                     push @arr, $in_params{$name}, $value;
                     $in_params{$name}=\@arr;
                 }
             } else {$in_params{$name}=$value}
         }
         }
     }
     return %in_params;
 }
 
 =============
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по:

 Тема:    Автор:    Дата:  
 Разобрать форму (нюанс)   Andrei Protasovitski   18 May 2004 17:58:20 
 Re: Разобрать форму (нюанс)   Yury Kopyl   18 May 2004 18:03:38 
 Re: Разобрать форму (нюанс)   Andrei Protasovitski   18 May 2004 18:19:20 
 Re: Разобрать форму (нюанс)   Nick Kostirya   18 May 2004 18:25:04 
 Re: Разобрать форму (нюанс)   Ivan Frolcov   18 May 2004 18:49:03 
 Re: Разобрать форму (нюанс)   Nick Kostirya   18 May 2004 19:06:38 
 Re: Разобрать форму (нюанс)   Andrei Protasovitski   19 May 2004 12:56:38 
 Re: Разобрать форму (нюанс)   Denis Poznyakov   19 May 2004 13:15:41 
 Re: Разобрать форму (нюанс)   Andrei Protasovitski   19 May 2004 13:53:39 
 Re: Разобрать форму (нюанс)   Artem Chuprina   19 May 2004 15:27:51 
 Re: Разобрать форму (нюанс)   Ivan Frolcov   19 May 2004 15:55:42 
 Re: Разобрать форму (нюанс)   Andrei Protasovitski   19 May 2004 16:12:54 
 Re: Разобрать форму (нюанс)   Konstantin Tokar   19 May 2004 16:17:56 
 Re: Разобрать форму (нюанс)   Andrei Protasovitski   19 May 2004 16:11:19 
 Re: Разобрать форму (нюанс)   Yury Kopyl   19 May 2004 17:02:19 
 Re: Разобрать форму (нюанс)   Andrei Protasovitski   19 May 2004 18:07:20 
 Re: Разобрать форму (нюанс)   Yury Kopyl   19 May 2004 19:16:58 
 Re: Разобрать форму (нюанс)   Artem Chuprina   19 May 2004 17:06:57 
 Re: Разобрать форму (нюанс)   Andrei Protasovitski   19 May 2004 17:32:07 
 Re: Разобрать форму (нюанс)   Andrei Protasovitski   19 May 2004 17:36:08 
 Re: Разобрать форму (нюанс)   Nikolay Pichtin   10 Jun 2004 21:49:50 
Архивное /ru.cgi.perl/657758ea8732.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional