フォーム
- htmlでformタグは知っていたんだけど、そこに入力した内容をどうCGIに渡すか、ずっと疑問だった。
- form内に記入した要素が、methodに従った環境変数に引き渡されて、cgiがその環境変数から要素を引き出して使う、ということらしい。
- getとpostで要素の入る環境変数が違う。
- get:
$ENV{"QUERY_STRING"}
- post:
$ENV{"CONTENT_LENGTH"})
$str =~ tr/+/ /;
$str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("c",hex($1))/eg;
環境変数から要素を受け取り、それを連想配列格納する
foreach (split(/&/,$str)){
my ($key , $value) = split (/=/,$_);
$data{$key} = $value;
}
表示・・・ソースは見づらいなぁ
print "Content-Type: text/html;charset=UTF-8\n\n";
print "<html>\n";
print "<head><title>WELCOME</title></head>\n";
print "<body>\n";
print "$data{'NAME'}</br>\n";
print "<body>$data{'SEX'}\n";
print "</body>";
print "</html>\n";