#!/usr/bin/perl #2002年10月23日(水)版 #いちぺーじに一記事版 #2003年02月05日(水)版 #平成15年2月23日(日) rev.cgi作成。 #平成15年2月24日(月) メッセージを一部変更 $\ = "\n"; #入力を整理。なければショートカットして表示へいくす。 unless($ENV{QUERY_STRING} eq ""){ @arg1 = split /&/,$ENV{QUERY_STRING}; foreach(@arg1){ ($key,$val) = split /=/; $arg{$key} = $val; } } $val = ""; unless($ENV{CONTENT_LENGTH}== 0){ read(STDIN,$_,$ENV{CONTENT_LENGTH}) ; @argv = split /&/; foreach(@argv){ ($key,$val) = split /=/; $arg{$key} = $val; } unless($arg{text} eq ""){ # リロード対策。 $chk =""; open(CHK,"chk"); while(){ chop; $chk = $chk.$_ ; } close(CHK); $ref = $arg{name}.$arg{text}; chop $ref ; if( $chk eq $ref){ $arg{name} = ""; $arg{text} = ""; } else{ open(CHK,">chk"); print CHK $ref ; close(CHK); } $arg{name} =~ s/%(..)/pack("C",hex($1))/eg ; $arg{text} =~ s/%(..)/pack("C",hex($1))/eg ; $name = $arg{name}; $val = $arg{text}; # #SJIS,JIS,EUC -> SJIS use Jcode ; $name = jcode($name)->h2z->sjis; $name =~ s///g; $name =~ s/\+/ /g; $name =~ s/\t//g; $name =~ s/\r\n/\n/g; # Win→Unix $name =~ s/\r/\n/g; # Mac→Unix $name =~ s/&/&/g; $name =~ s/"/"/g; $name =~ s//>/g; $val = jcode($val)->h2z->sjis; $val =~ s///g; $val =~ s/\+/ /g; $val =~ s/\t//g; $val =~ s/\r\n/\n/g; # Win→Unix $val =~ s/\r/\n/g; # Mac→Unix $val =~ s/&/&/g; $val =~ s/"/"/g; $val =~ s//>/g; } } ########################################################### #最新ログナンバーを取得。上位15件を表示する準備。 ########################################################### #!/usr/bin/perl opendir DIR ,"."; @list = readdir DIR ; @list = grep {/^[0-9]+.log/} @list; @list = sort @list; $big = pop @list; $big =~ s/^(....).*/\1/; $big = $big-0; $page = $arg{page}+0; if($page < 0){ $page = 0; } $prevpage = $page + 5; if($big - $page < 1){ $page = $big - 1; $prevpage = $page ; } $nextpage = $page - 5; if($page < 1){ $nextpage = 0; } ########################################################## #メッセージを残す。#つきは過去の遺物とデバッグ用。 ########################################################## $\ = "\n"; #$mes = ""; $date = localtime; $_ = $val; if ( $_ ne ""){ $big++ ; $log = sprintf("%04d.log",$big); open( LOG ,">".$log); print LOG ' '; print LOG 'おなまえ
',$name; print LOG '--------'; print LOG 'メッセージ
',$_; print LOG '
日付',$date; close(LOG); $\ = "\n"; } # #出力する。 # print < はげましのお声、ないしは罵詈雑言

はげましのお声、ないしは罵詈雑言

御芳名

おことば

準備はいいですね


END # print "big=",$big; $big = $big - $page ; #print "big=",$big; #print "page=",$page; #print "nextpage=",$nextpage; #print "prevpage=",$prevpage; $start = $big-4; print "

",$start,"to",$big; for($start .. $big){ print "

"; print $_; $mes = ""; $log = sprintf("%04d.log",$_); open(LOG,$log); while(){ $mes = $mes.$_; } close(LOG); #print


; $_ = $mes; s/@/(1)/g; s/A/(2)/g; s/B/(3)/g; s/C/(4)/g; s/D/(5)/g; s/E/(6)/g; s/F/(7)/g; s/G/(8)/g; s/H/(9)/g; s/I/(10)/g; s/J/(11)/g; s/K/(12)/g; s/L/(13)/g; s/M/(14)/g; s/N/(15)/g; s/O/(16)/g; s/P/(17)/g; s/Q/(18)/g; s/R/(19)/g; s/S/(20)/g; s/\n/
/g; print $_; print "
"; } print <もっと古いメッセージを読む。 END2