#!/usr/local/bin/perl #----------------------------------------------------------------------------------- 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; $FORM{$name} = $value; } #----------------------------------------------------------------------------------- $FORM{'user'} =~ y/A-Z/a-z/; if ($FORM{'user'} eq "") { &error(1); } elsif (length($FORM{'user'}) < 1 || length($FORM{'user'}) > 10) { &error(1); } elsif ($FORM{'user'} =~ /\W/) { &error(1); } $file = "./user/$FORM{'user'}\.dat"; if (-e $file) { &error(2); } #----------------------------------------------------------------------------------- if ($FORM{'count'} =~ /\D/ || $FORM{'count'} eq "") { &error(3); } #----------------------------------------------------------------------------------- if (!open(OUT,">$file")) { &error; } print OUT "count\:$FORM{'count'}\n"; close(OUT); chmod(0700,$file); #----------------------------------------------------------------------------------- print "Content-type: text/html\n\n"; print "おしらせ\n"; print ''; print "

発行されました

\n"; print "カウンタは$FORM{'count'}からカウントされます。ブラウザの[戻る]で戻ってください。

\n"; print "

";
	print "<img src=\"http://あなたのURL/~あなたのID/counter/counter.cgi?user=$FORM{'user'}\" border=0>";
	print "

"; print "■ご注意

\n"; print "


"; print "

\n"; exit; #----------------------------------------------------------------------------------- sub error { $error = $_[0]; if ($error eq "1") { $error_msg = "半角英数字10文字以内でカウンタ名を付けてください。"; } elsif ($error eq "2") { $error_msg = "既にこのカウンタネームは使われています。"; } elsif ($error eq "3") { $error_msg = "数字は半角で入力してください。"; } else { $error_msg = "何らかのエラーによって作業が中止されました。"; } print "Content-type: text/html\n\n"; print "おしらせ\n"; print ''; print "

おしらせ

\n"; print "$error_msg

\n"; print "\n"; exit; }