#!/usr/local/bin/perl
#↑使用するサーバのperlのパスに変えてください。大抵はこれか、#!/usr/bin/perl、のどちらかです。
require './jcode.pl';
#アイモード用検索機能付スケージュールCGI Ver2.5
#"i-schedule" 作者:Y,K
#∋oノハヽo∈
# ( ´D`)<こんなところが便利!
#・タレントさんの雑誌、TVなどの出演予定を教えあうのに大変便利。
#・投稿者が投稿時にパスを設定することにより、投稿者自身でその記事を削除出来る。もちろん管理者用パスで全てを削除可能。うーん便利。
#・投稿をパスによって規制することも可能。かなり便利。
#・現在時刻を表示し、その月の記事を自動で表示する。便利すぎ。etc...
#この度はダウンロードして頂き、まことにありがとうございます。今後とも私の作品にご期待下さい。
#このスクリプトはフリーですが、著作権表示は絶対に消さないようお願いします。
#拡張子の変更(i-schedule.txt→i-schedule.cgi)及び、初期設定及び、jcode.plのDL、及びtxtファイルの作成
#(i-schedule.txt(メモ帳などで白紙のまま保存)、is-count.txt(メモ帳などで0(開始番号)と書いて保存))を行った後
#CGIが稼動出来るディレクトリ(777)にi-schedule.cgi(755)jcode.pl(755)i-schedule.txt(666)is-count.txt(666)を一緒に設置してください。
#注:()内はパーミッション、
#バグ報告を歓迎します。どうぞご協力お願いします。
#サーバによっては動かないところもあるようです。その場合はご了承下さい。(niftyサーバで動作確認済)
#このスクリプトを使用することによって生じたいかなる損害・事件について、作者は一切引責・補償をいたしません。
#---------------------------------------------------------初期設定-----------------------------------------------------------
$title = 'i-schedule'; #タイトル
$titlecolor = '#006666'; #タイトルの色
$scriptname = 'i-schedule.cgi'; #このスクリプトの名前(特に変更の必要無し)
$pageview = 10; #1ページにおける表示数
$datafile = 'i-schedule.txt'; #記事用ログファイル名(特に変更の必要無し)
$datafile2 = 'is-count.txt'; #カウント用ログファイル名(特に変更の必要無し)
$text = 'black'; #テキストの色
$bgcolor = '#FFFFCC'; #壁紙の色
$link = '#006666'; #未訪問のリンクの色
$vlink = '#336633'; #訪問済のリンクの色
$shinrai = 0; #信頼性機能を使うか?(YES 1/NO 0)
$max = 100; #ログの最大保持数
$maxlength = 1050; #訪問者の書き込みするデータ量を何バイトまで許すか?
$homepage = ''; #戻り先URL
$noname = ''; #投稿者名が無記入だった場合の名前
$br = 9; #何回まで改行を許すか?
$timelag = 9; #世界標準時刻からのタイムラグ(特に変更の必要無し)
$form_html = ''; #投稿フォームに表示させる文章(注意書きなど)
$dpassword = 'itsgood'; #管理人用PASSです。これによって全ての記事が削除出来ます。
#わかりにくい文字列にしてください。(半角英数8文字まで)
$YEARS[0] = '2004'; #以下は投稿フォームのプルダウンに表示される西暦です。
$YEARS[1] = '2005'; #今現在の暦に合うように設定してください。
$MONTHS[0] = '2004年06月'; #以下は検索用プルダウンに表示される
$MONTHS[1] = '2004年07月'; #項目です。今現在の暦に合うように設定してください。
$MONTHS[2] = '2004年08月'; #なおこの二つは$MONTHS[12] = '2004年01月';というように増やす
$MONTHS[3] = '2004年09月'; #事も、また減らす事も可能です。
$MONTHS[4] = '2004年10月'; #なおその際は、"○○年○○月"といった形式は変えないで下さい。
$MONTHS[5] = '2004年11月';
$MONTHS[6] = '2004年12月';
$MONTHS[7] = '2005年01月';
$MONTHS[8] = '2005年02月';
$MONTHS[9] = '2005年03月';
$MONTHS[10] = '2005年04月';
$MONTHS[11] = '2005年05月';
$password = ''; #投稿ボタンをパスワードによって制限したい場合はこちらで
#パスワードを設定し、投稿したいときには
#「このスクリプトのURL?pw=設定したパスワード」でアクセスして下さい。
#----------------------------------------------------データを取得する--------------------------------------------------------
unless ($ENV{'CONTENT_LENGTH'} >= $maxlength) {
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $QUERY_DATA, $ENV{'CONTENT_LENGTH'});
} else {
$QUERY_DATA = $ENV{'QUERY_STRING'};
}
@PAIRS = split(/&/,$QUERY_DATA);
foreach (@PAIRS) {
($key, $value) = split(/=/, $_);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/,/,/g;
$value =~ s/&/&/g;
$value =~ s/"/"/g;
$value =~ s/</g;
$value =~ s/>/>/g;
foreach (1 .. $br) { $value =~ s/\r\n|\r|\n/
/; }
$value =~ s/\r\n|\r|\n/ /g;
jcode'convert(*value,'sjis');
$DATA{$key} = $value;
}
} else {
&error("記事が制限バイト数$maxlengthを超えています。");
}
#-------------------------------------------現在時刻の取得及び検索用に書式の変更---------------------------------------------
$ENV{'TZ'} = "GMT";
($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime(time + $timelag * 3600);
$mon += 1;
$year += 1900;
@what = ('日','月','火','水','木','金','土');
$jikoku = sprintf("%02d月%02d日", $mon, $mday);
$jikoku2 = sprintf("%02d時%02d分", $hour, $min);
$time = "
$jikoku($what[$wday])$jikoku2";
$time =~ s/(日)/(日<\/font>)/;
$time =~ s/(土)/(土<\/font>)/;
$tellme = sprintf("%04d年%02d月", $year, $mon);
$i = sprintf("%02d", $mon);
$mday = sprintf("%02d", $mday);
$lo = substr($mday, -2, 1);
$ve = substr($mday, -1, 1);
#----------------------------------------------------投稿フォームの作成------------------------------------------------------
if ($DATA{'button'} eq '投稿' && $DATA{'pw'} eq $password) {
&header;
print "