#!/usr/bin/perl require './jcode.pl'; &decode; if ($mode eq 'regist'){ ®ist; } elsif ($mode eq 'delete'){ &delete } &html; #html sub html{ #HTMLの表示 print <<"HTML"; Content-type: text/html 一言メッセージ

一言メッセージを書いてください。


入力 =>

HTML #コメント部分の表示 open(IN,"b.dat"); @log = ; close(IN); foreach $in (@log){ ($num,$comment) = split(/\t/,$in); print "$num> $comment
";} print <<"END";


削除番号
END exit; } sub decode{ $method = $ENV{ 'REQUEST_METHOD' }; if( $method eq 'GET' ) { $input = $ENV{ 'QUERY_STRING' }; } else {read( STDIN,$input,$ENV{ 'CONTENT_LENGTH' } );} @in = split(/&/,$input); foreach (@in) { ($list, $value) = split(/=/); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'convert(*value, 'sjis'); $form{$list} = $value; } $mode = $form{'mode'}; $comment = &tag($form{'comment'}); $no = $form{'no'}; } sub regist{ open(IN,"b.dat"); @log = ; $no = $log[0] + 1 ; $newdata = "$no\t$comment\n"; close(IN); open(OUT,">b.dat"); unshift (@log,"$newdata"); #ログ保存数を設定($# は変数のインデックスの最大値を求める記述) $data_max = 10; if ($#log > ($data_max -1)){ $#log = $data_max -1;} print OUT @log; close(OUT); } sub delete{ open(IN,"b.dat"); foreach () { ($no,$comment) = split(/\t/); #削除ナンバーでなければ、保存 if (!($form{'no'} == $no)){ push(@log,$_); } } close(IN); open(OUT,">b.dat"); print OUT @log; close(OUT); } #タグの禁止と改行の変更サブルーチン sub tag { $_[0] =~ s/&/&/g; $_[0] =~ s/"/"/g; $_[0] =~ s//>/g; $_[0] =~ s/\r\n/
/g; $_[0] =~ s/\r/
/g; $_[0] =~ s/\n/
/g; return $_[0]; } __END__