Formの値の取得


CGIを使う上で必ずと言っていいほど必要なのがこれ。


sub decode {
 
if($ENV{'REQUEST_METHOD'} eq "POST") {
 read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else{ $buffer = $ENV{'QUERY_STRING'}; }
 
 @pairs = split(/&/,$buffer);
 foreach $pair(@pairs) {
  ($name,$value) = split(/=/,$pair);
 
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
  $value =~ s/</&lt;/g;
  $value =~ s/>/&gt;/g;
 
  &jcode'convert(*value,'sjis');
 
  $form{$name} = $value;
 }
 
return;
}
 

POSTで送られてきた場合もGETで送られてきた場合も、

$form{"変数名"};

で取得できます。