一つのユニットとして考えてください。
HTMLのフォームに記述した内容を受け取る際には、
以下の記述をすると、GETでもPOSTでも受け取ることが可能になります。
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/</g;
$value =~ s/>/>/g;
$value =~ s/"/"/g;
$value =~ s/\n/
/g;
$value =~ s/\*//g;
$value =~ s/^//g;
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*value,'sjis');
&jcode'convert(*name,'sjis');
$FORM{$name} = $value;
}
これで全て受け取ることが可能です。
ここに記述してる$value =~ s/</g;等は
< を <に変換することを意味しています。
つまり、タグを使用できないようにしています。
フォームに入力する何かを使用不可能な状態にしたければ、
この記述を使用して、排除します。
例えば、画像の貼り付けを使用不可能にしたければ、画像の
タグを使用できないようにすればいいわけですから・・・・・
$value =~ s/IMG//g;
とすればいいわけです。
これを上記に追加記述すればOKです。
$FORM{$name} = $value; の部分は、フォームの、
等の
NAME="e-mail"の"e-mail"に連動しています。
ここのフォームの入力内容を収得するには以下のようにして
得ることができます。
$FORM{'e-mail'}
これでに
入力された内容を得ることができます。
ただこのままでは得ただけなので、これを何らかの形で処理する
必要があります。通常はこれを変数に入れてなんかに利用するか
プリントして、出力します。
例えば変数に代入する場合は・・・
$email = $FORM{'e-mail'};
と書きます。
これで、$FORM{'e-mail'}の内容は、
$emailへ代入されたことになります。
これを出力するには・・・・・
print $email;
で出力できます。
変数に代入しないで以下の形でも問題はありません。
print $FORM{'e-mail'};
どちらにするかは、CGIの構築内容に合わせて使用してください。