CGI のフォームのやりとり

そういえばそうだった。忘れかけ…w。


use Jcode;
# データがPOST形式の場合
if ($ENV{'REQUEST_METHOD'} eq "POST") {
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
# データがGET形式の場合
} else {
   $buffer = $ENV{'QUERY_STRING'};
}
# データを name 別に分割する
@pairs = split(/&/, $buffer);
# データハッシュ形式に変換する(%FORM)
foreach $pair (@pairs) {
        ($name, $value) = split(/=/, $pair);
        $value =~ tr/+/ /;
   # 文字の処理
        $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
        &Jcode::convert($value,'euc');
        $FORM{$name} = $value;
}

print "password = $FORM{passwd}<br />\n";

という感じで使う。