#! /usr/local/bin/perl ;# ;# Changed from original by N.Yukawa 1997.9.25 ;# ;# WWWBBS version 1.0(フリーソフト) ;# ;# Script written by Kazu.Y ;# Created on: 01/Sep/97 ;# Last Modified on: 01/Sep/97 ;# I can be reached at: rescue@ask.or.jp ;# Scripts Found at: http://www.ask.or.jp/~rescue/ ;# ;# <利用規定の抜粋> ;# 1.このスクリプトは自分で使うために承諾なしに自由に改造することができます。 ;# 2.改造の有無にかかわらず、このスクリプトを再配布することはできません。 ;# 3.このシステムを有償で他人に設置してあげたりする行為は無断ではできません。 ########################################################################################### # # 基本構成(初期設定はこの構成を前提に設定されています) # # public_html(ホームページディレクトリ) # | # |-- cgi-bin(任意のディレクトリ) # | # |-- infomsg (記事ディレクトリ) [777] # |-- infotree (スレッドデータディレクトリ) [777] # | # |-- jcode.pl [755] # |-- infobbs.cgi [755] <- このCGIスクリプトを実行 # |-- infomaster.pwd [666] <- 空のファイル # # ・jcode.pl/infobbs.cgi/infomaster.pwdを同じ場所に設置する # ・[ ]内はパーミッッション値 # ・jcode.plは中身を全くいじらずにそのままアスキー転送する # ・jcode.plはjperlでは利用できないので注意すること # ・これらのファイルはアスキーモードで取り扱う(転送)すること # ・マスターキーの変更機能が効かない場合は、あなたのサーバでは # 暗号処理ができないと思われますので、設置できません # ########################################################################################### ## 初期設定 ## #終了ボタンを押すと表示するページのURL $bye = 'http://www.numse.nagoya-u.ac.jp/JSTP/gyoji.html'; #画面表示するタイトル $title = '行事予定'; #ブラウザの上部バーに表示するタイトル $title2 = '塑性加工学会 東海支部 行事予定'; #1回に画面表示する件数 #インデックスファイルを持たないシステムなので #この件数を大きくするとその回数だけ記事ファイルにアクセスしますので #できるだけこれ以下でご利用ください. $def = 10; #
設定 $body = ''; #jcode.plのパス #require '/usr/local/etc/apache/cgi-bin/jcode.pl'; require '/usr/local/etc/httpd/cgi-bin/jcode.pl'; ############## #■時間処理 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); if ($month < 10) { $month = "0$month"; } if ($mday < 10) { $mday = "0$mday"; } if ($sec < 10) { $sec = "0$sec"; } if ($min < 10) { $min = "0$min"; } if ($hour < 10) { $hour = "0$hour"; } $month = ($mon + 1); $wday = ('日','月','火','水','木','金','土')[$wday]; $basenum = "$year$month$mday$hour$min$sec"; $date_now = "$month\/$mday($wday)$hour\:$min"; $number = $ENV{'QUERY_STRING'}; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); #■入力処理 $line_count = 0; @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,'euc'); $value =~ s/\n//g; $value =~ s/</g; $value =~ s/>/>/g; if (!($value =~ /\n/) && $value =~ /\r/) { $value =~ s/\r/\n/g; } if ($name eq "ikkatsu") { push(@IKKATSU,$value); } else { $FORM{$name} = $value; } } #■マスターキー確認 if (!open(IN,"./infomaster.pwd")) { &error('システム設定','マスターキーが開けません.'); } $master =削除 | 記事番号 | 記録日 | 記録者 | 題名 | サイズ | 参照数 |
---|---|---|---|---|---|---|
記事番号 | 記録日 | 記録者 | 題名 | サイズ | 参照数 | |
\n"; } else { print "メッセージはありません.
\n"; } if (@ERR) { print "警告!次のメッセージのファイルが開けません > @ERR
\n"; } if ($admin) { print "\n"; } print "
\n"; # 表示義務 print "
\n\n\n\n\n
\n"; # # print "
"; foreach $num (11 .. $axs - 1) { print $lines[$num]; } print "
\n";
# }
if ($homepage ne '') {
if (open(IN,"./infohtml/$homepage")) {
@htmls = \n";
}
print " \n";
}
# print " \n";
# print " \n";
if ($email =~ /(.*)\@(.*)\.(.*)/) { print "●記録者 $name [$host]
\n";
print "URL=$homepageオンライン申込み
\n";
print "
\n"; }
else { print "●記録者 $name [$host]
\n"; }
print "●記録日 $date
\n"; print "
パスワード "; # print " |
---|
\n"; print "
\n"; #■参照数処理 $rc++; $lines[1] = "Rc:$rc\n"; if (!open(OUT,"> ./infomsg/$number")) { &error('入出力エラー',"$number番のメッセージファイルに参照数データを記録できません."); } print OUT @lines; close(OUT); #■スレッド処理 if (!open(IN,"./infotree/$tree")) { print '構成の最初の記事が削除されたため構成図は表示されません.
' . "\n"; exit; }
@tr_file = \n";
print "\n";
exit;
}
sub post {
#■クッキー処理
$cookies = $ENV{'HTTP_COOKIE'};
@pairs = split(/;/,$cookies);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ s/ //g;
$DUMMY{$name} = $value;
}
@pairs = split(/,/,$DUMMY{$bye});
foreach $pair (@pairs) {
($name, $value) = split(/:/, $pair);
$COOKIE{$name} = $value;
}
if ($COOKIE{'name'} eq '匿名希望') { $COOKIE{'name'} = ''; }
#■画面
if ($FORM{'resp_number'} ne '') { $write_title = "$FORM{'resp_number'}への返信"; }
else { $write_title = "新規投稿"; }
print "Content-type: text/html\n\n";
print " \n";
print "URL \n";
print "パスワード (記事の削除時に使用) \n";
print "\n";
print " \n";
print "メッセージの構成図
' . "\n";
# print "\n";
# foreach (@tr_file) {
#
# if (/.*\s\s$number.*/) { s/(.*) $number(.*)/\1 \<\;$number<\/b>\>\;\2/g; }
# elsif (/.*\s\s(\d+).*/) { s/(.*\s\s)(\d+)(.*)/\1\<\;\2<\/a>\>\;\3/g; }
# elsif (/.*\`\-\-$number.*/) { s/(.*)\`\-\-$number(.*)/\1\`\-\-$number<\/b>\2/g; }
# else { s/(.*)\`\-\-(\d+)(.*)/\1\`\-\-\\2<\/a>\3/g; }
# print;
# }
# print "
$write_title
\n";
print "
\n"; }
elsif ($FORM{'resp_subject'} =~ /^re\((.*)\):(.*)/) {
$title = $2;
if ($1 =~ /(\d+)/) {
$resnum = ($1 + 1);
print "題名
\n";
}
else { print "題名
\n"; }
}
else { print "題名
\n"; }
print "記録者
\n";
print "Eメール
\n";
print "内容