#!/usr/local/bin/perl # 構成(数字はパーミッション()内は所有者権限でCGIが動くサーバの場合) #|-- tl11.cgi 755(700) #|-- jcode.pl 644(600) #|-- bbs.dat 666(600) #|-- count.txt 666(600) # #たいやきライトはシンプルな機能の一行掲示板です。 #使用、改造、再配布に一切の制限はありません。 #08/24 2000 真辺慎 ############################### 環境設定 ############################### $title = '★★東風荘革命軍作戦室★★'; # 掲示板の名前 $bbsurl = './tl11.cgi'; # このスクリプトのURL(相対指定も可) $bbsfile = './bbs.dat'; # 記録ファイルのパス $counterfile = './count.txt'; # カウンタファイルのパス $jcpl = './jcode.pl'; # 日本語コード変換ライブラリのパス # 出力HTMLの文字色や背景(ボディタグ) $body = '
'; $namecolor = '#d53d8e'; # 名前の色 $textcolor = '#333333'; # 内容の色 $datecolor = '#666666'; # 投稿日時の色 $max = 100; # 表示件数 $maxlength = 3*1024; # 入力データ合計の最大値(byte) $time_dif = 9*60*60; # グリニッジ標準時との時差(日本時間を表示する場合9*60*60) ############################### 全体処理 ############################### &get_time; if ($ENV{'REQUEST_METHOD'} eq "POST") { &decode; &write if($FORM{'value'}); } &html; exit; ############################### サブルーチン ############################### sub get_time{ #-------------------- 時刻処理 --------------------# $time = time; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($time + $time_dif); $mon++; $wday = ('日','月','火','水','木','金','土')[$wday]; $date_now = sprintf( "%02d/%02d($wday)%02d:%02d",$mon,$mday,$hour,$min); } sub decode{ #-------------------- デコード --------------------# return if($ENV{'CONTENT_LENGTH'} > $maxlength); require "$jcpl"; read(STDIN, $buf, $ENV{'CONTENT_LENGTH'}); foreach (split(/&/,$buf)) { ($name, $value) = split(/=/,$_); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'convert(*value,'sjis'); $value =~ s/\r|\n//g; $value =~ s/&/&\;/g; $value =~ s/</g; $value =~ s/>/>/g; $value =~ s/\t:/ :/g; $FORM{$name} = $value; } } sub html{ #-------------------- HTML出力 --------------------# &counter; # HTML内の任意の場所に$countを置くとそこにカウント数が表示されます print "Content-type: text/html\n\n"; print <<"_HTML_";
_HTML_
# 記事の出力
open(IN,"$bbsfile");
while (
$name >\; ";
print "$value $date\n";
}
close(IN);
print <<"_HTML_";