#!/usr/local/bin/perl require 'jcode.pl'; $rakugakiurl = 'http://www.tryhp.net/cgi-bin/rakugaki.cgi'; $rakugakifile = 'rakugaki.txt'; ($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; $mon = sprintf("%02d", $mon + 1); $day = sprintf("%02d", $day); $hour = sprintf("%02d", $hour); $min = sprintf("%02d", $min); $date_now = "$year年$mon月$day日 $hour時$min分"; if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $QUERY_DATA, $ENV{'CONTENT_LENGTH'}); } else { $formdata = $ENV{'QUERY_STRING'}; } @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/\n//g; $value =~ s/\,//g; &jcode'convert(*value,'sjis'); $FORM{$name} = $value; } if ($FORM{'action'} eq "true") { ®ist; } else { &html; } exit; sub html { if (!open(NOTE,"$rakugakifile")) { &error(bad_file); } @DATA = ; close(NOTE); @DATA = reverse(@DATA); print "Content-type: text/html\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "落書き帳\n"; print "\n"; print "
\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
ニックネーム
E-mail
言いたい
\n"; print "
\n"; print "
\n"; foreach $line (@DATA) { chop($line); ($date,$name,$email,$comment) = split(/\,/,$line); $comment =~ s/\r/
/g; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; if ($email ne "") { print "$name\n"; } else { print "$name\n"; } print " $date
\n"; print "
$comment
\n"; print "
\n"; print "
\n"; print "

"; } print "

\n"; print "\n"; exit; } sub regist { if ($FORM{'name'} eq "") { &error(bad_name); } if ($FORM{'comment'} eq "") { &error(bad_comment); } if (!open(NOTE,">>$rakugakifile")) { &error(bad_file); } $value = "$date_now\,$FORM{'name'}\,$FORM{'email'}\,$FORM{'comment'}\n"; print NOTE $value; close(NOTE); print "Location: $rakugakiurl" . '?' . "\n\n"; } sub error { $error = $_[0]; if ($error eq "bad_file") { $msg = 'ファイルのオープン、入出力に失敗しました。'; } elsif ($error eq "bad_name") { $msg = 'ニックネームが記入されていません。'; } elsif ($error eq "bad_comment") { $msg = 'コメントが記入されていません。'; } else { $msg = '原因不明のエラーで処理を継続できません。'; } print "Content-type: text/html\n\n"; print "落書き帳\n"; print "\n"; print "

\n"; print "

error


\n"; print "" . $msg . "
\n"; print "\n"; exit; }