#!/usr/bin/perl # 注意:NTサーバでは画像のUP機能がうまく動きません ### 【ここから著作権表示】 ################################################ # # 著作権の告知 # diary (diary.cgi) # Copyright (c) 1998 To-chat Script Factory. All Rights Reserved. # Maintained by Tanaka Hiroyuki # # 以下の2行は著作権表示なので絶対に書き換えないで下さい。 $script_url = "\"http://www2m.biglobe.ne.jp/~To-chat/script/index.cgi\""; $script_v = "Diary v1.1"; # # このCGIスクリプトはフリーウエアです。 # この著作権の告知に手を加えない限り、このCGIスクリプトを使用すること、 # ならびにカスタマイズすることができます。 # # 当スクリプトを使用することにより、使用者は To-chat Script Factory に対し、 # 使用によって生じる可能性のあるいかなる責務に関しても免責を保証したものと # します。 # # 事前の書面による同意を得ることなしに当スクリプトのコードを販売することは、 # 禁止します。 # # 当方の許可無く、当スクリプト、もしくは当スクリプトをカスタマイズしたもの # を再配布することは堅く禁じます。再配布を希望される場合は、必ず事前に許可 # を得てください。 # # いかなる場合も、この著作権表示に手を加えることは禁止します。 # ############################################## 【著作権表示はここまで】 ### ### 【ここから設定】 ##################################################### # # 必要に応じて以下の項目の設定を変更して下さい。 # クオーテーションマーク(')は必要なものですので削除しないで下さい。 # 管理用パスワード(必ず変更) $password = '52c7wa'; # CGIファイル(このファイル) $cgi_url = 'diary.cgi'; # 画像UP用CGIファイル $upcgi_url = 'upload.cgi'; # ログを保存するディレクトリ。このCGIからの相対的位置を指定 $log_directory = './log/'; # 設定ファイル $room = 'r.dat'; # ログ保存ファイル $file = 'log.dat'; # postが使えないサーバーはgetに変更。 $method = 'post'; # 海外サーバー利用時、時差がある場合は以下を設定する。 # たとえば表示時刻に3時間の遅れがある場合は、$HourOffset = '+3'; と変更する。 $HourOffset = '0'; ################################################## 【 設定はここまで 】##### $dir_room = "$log_directory$room"; $dir_file = "$log_directory$file"; $space = " "; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time+($HourOffset*3600)); $month1 = ($mon + 1); $year += 1900; $date_now = sprintf("%02d/%02d/%02d",$year,$month1,$mday); $time2= time; $ENV{'TZ'} = "GMT"; ($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = localtime(time + 30*24*60*60); $youbi = (Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday) [$wdayg]; $month = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec) [$mong]; $date_gmt = sprintf("$youbi\, %02d\-$month\-%02d %02d:%02d:%02d GMT",$mdayg,$yearg,$hourg,$ming,$secg); if (!open(FILE,"$dir_file")) { &openchat1;} close(FILE); if (!open(ROOM,"$dir_room")) { &openchat2;} close(ROOM); $cookie_name = 'keijiban40'; require './jcode.pl'; require "$dir_room"; 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; &jcode'convert(*value,'sjis'); $value =~ s/ , / , /g; $value =~ s/\n//g; if ($name eq "target") { push(@RM,$value); } else { $FORM{$name} = $value; } } if($max eq ""){$max = "100";} if($titlecolor eq ""){$titlecolor = $txtcolor;} $top = "
This CGI Script is $script_v
"; if($z1color) { $z1 = "bgcolor\=\"$z1color\""; } else {$z1 = '';} ### 分岐 ### if ($buffer eq "" ) { &disp; } else { if ($FORM{'action'} eq "regist") { ®ist; } elsif ($FORM{'action'} eq "regist2") { ®ist2; } elsif ($FORM{'action'} eq "mente") { &mente; } elsif ($FORM{'action'} eq "admin") { &admin; } elsif ($FORM{'action'} eq "admin2") { &admin2; } elsif ($FORM{'action'} eq "change") { &change; } elsif ($FORM{'action'} eq "change2"){ if ($FORM{'change'}) { &change2; } elsif ($FORM{'delete'}) { &delete; } } elsif ($FORM{'action'} eq "change3") { &change3; } elsif ($FORM{'action'} eq "remove") { &remove; } elsif ($FORM{'action'} eq "delmsg") { &delmsg; } else { &disp; } } ### 表示作業 ### sub disp { &decode_cookie($cookie_name); &title; print "$head
\n"; print "
$rinji
\n"; if (!open(IN,"$dir_file")) { $errorcode = "1"; &error; } @DATA = ; close(IN); if ($FORM{'top'}) { $next = 0; } else { if ($FORM{'next'} eq "") { $next = 0; } else { $next = $FORM{'next'}; }} $accesses = @DATA; @DATA = reverse(@DATA); @DATA2 = splice(@DATA,$next,$limit); $next2 = ($next + $limit); foreach $data (@DATA2) { if ($data =~ /(.*) \, (.*) \, (.*) \, (.*)/) { $date = $1; $name = $2; $com = $3; $new = $4; $hr = 0; } else { next; } print "
\n"; print "
\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "
$space$date\n"; if($name) { print "$space$name\n"; } print "

\n"; print "$com\n"; print "
\n"; } if($next2 < $accesses){ print "
\n"; print "\n"; if($next ne "0"){ print "\n"; } if($limit eq "1"){ print "\n"; } else { print "\n"; } print "
\n"; } elsif($next ne "0") { print "
\n"; print "\n"; print "\n"; print "
\n"; } print "
\n"; print "$top\n"; exit; } ### 認証画面 ### sub mente { &title; &mentelog; } ### 認証画面2 ### sub remente { &title; print "パスワードが正しくありません。もう一度お確かめ下さい。
\n"; &mentelog; exit; } ### 認証画面3 ### sub mentelog { if($FORM{'action'} eq "regist") { $mente1 = '