require "cgi-lib.pl"; #C言語のインクルード文みたいの &ReadParse(*dat); #入力されたメッセージが連想配列datに格納される
#!/usr/bin/perl # #サーバーの予約変数=CGI環境変数 # REQUEST_METHOD : フォームのMETHOD="〜"が入ります # QUERY_STRING : GETのときのメッセージが入ります # CONTENT_LENGTH : POSTのときのメッセージ長が入ります # この長さ分だけ標準入力からメッセージを # 読み込みます $ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/; #小文字を念のため大文字にする if ($ENV{'REQUEST_METHOD'} eq "GET") { $dat = $ENV{'QUERY_STRING'}; } else { read(STDIN, $dat, $ENV{'CONTENT_LENGTH'}); } @buf = split('&',$dat); foreach $item (@buf) { ($var,$value) = split('=',$item); $value =~ tr/+/ /; #半角の空白を元に戻す #%xxのアスキーコードを文字に直す #半角記号や漢字はこの形式に化けているので $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; $value =~ s/</</g; #タグを戻す $value =~ s/>/>/g; # $value =~ s/\x0d\x0a/\x0a/g; #DOSの改行コード(CR/LF)をLFのみにする $value =~ s/\x0d/\x0a/g; #Macの改行コード(CR)をLFにする #\x0d=CR \x0a=LF $itm{$var} = $value; } $a = $itm{'a'}; $b = $itm{'b'}; $c = $itm{'c'}; exit;この例では,何もしないので具体的なものは次回からとします。
kibita@orange.or.jp