ファイル名: ./w/m.cgi

#!/usr/local/bin/perl

#------------------------------------------------------------
$Title = 'm';
$BODY = '<BODY BGCOLOR="#000000" TEXT="#C0C0C0">';
print "Content-type: text/html\n\n";
print "<HTML><HEAD><TITLE>$Title</TITLE></HEAD>\n";
print "$BODY\n";
$FONT_R = '<font color="#FF0000">';
$FONT_G = '<font color="#00FF00">';
$FONT_C = '</font>';
print "<blockquote>\n";
#------------------------------------------------------------
read(STDIN, $QUERY_DATA, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/,$QUERY_DATA);
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/\n//g;
$value =~ s/\,//g;
$FORM{$name} = $value;
}

if ($FORM{'action'} eq "true") { &HINT; }
else { print "文字を当てましょう。\n"; }

print "<form action=m.cgi method=POST>\n";
print "<input type=hidden name=action value=true>\n";
print "何か書いて\n";
print "<BR><BR>\n";
print "<input type=text size=20 name=name>\n";
print "<BR><BR>\n";
print "<input type=submit value=OK>\n";
print "<BR><BR>\n";
print "<HR>\n";

sub HINT {

$a = $FORM{'name'};

if ($a =~ /^w0(.+)a\1\b/i) {
&OK;
} else {

print "ヒントをみてもう1度\n";
print "<BR><BR>\n";
print "コメント内容<BR>\n";
print "$FONT_R$FORM{'name'}$FONT_C\n";
print "<BR><BR>\n";
print "ヒントをみてもう1度\n";
print "<BR><BR>\n";

if ($a =~ /\W/) {
print "$FONT_R英数字以外の文字が入ってます。英数字以外の文字は入ってません。$FONT_C<BR>\n";
} else {
print "$FONT_G英数字以外の文字は入ってません。$FONT_C<BR>\n";
}
if ($a =~ /\d/) {
print "$FONT_G数字の文字が入ってます。$FONT_C<BR>\n";
} else {
print "$FONT_R数字の文字が入ってません。数字の文字が入ってます。$FONT_C<BR>\n";
}
if ($a =~ /\s/) {
print "$FONT_R空白文字が入ってます。空白文字は入ってません。$FONT_C<BR>\n";
} else {
print "$FONT_G空白文字は入ってません。$FONT_C<BR>\n";
}
if ($a =~ /a+/i) {
print "$FONT_G aかAが入ってます。$FONT_C<BR>\n";
} else {
print "$FONT_R aかAが入ってません。aかAが入ってます。$FONT_C<BR>\n";
}
if ($a =~ /^w+/i) {
print "$FONT_G最初の文字がwかWです。$FONT_C<BR>\n";
} else {
print "$FONT_R最初の文字が違います。私のハンドルネームは?$FONT_C<BR>\n";
}

if ($a =~ /^w0/i) {
print "$FONT_Gおしいです。最初の2つは正解$FONT_C<BR>\n";
}
if ($a =~ /^w0a/i) {
print "$FONT_Gおしいです。3個目の数字の前と後に同じものを、その後ろはナシです。$FONT_C<BR>\n";
}

print "<BR>\n";
$_ = $a;
if ($_ = /^warewan/i) {
print "$FONT_R $&は、私のハンドルネームです。違います。$FONT_C<BR>\n";
}
}
}

sub OK {
print "<BR><BR>\n";
print "$FONT_G正解!正解はたくさんあります。$FONT_C\n";
print "<BR><BR>\n";
print "<a href=\"m.cgi\">BACK</a>\n";
last;
}
#------------------------------------------------------------
print "</blockquote>\n";
print "</BODY>\n";
print "</HTML>\n";
exit;