#!/usr/bin/perl #↑ご自分の環境に合わせて設定して下さい。 ############################################################################### # Script written by Web新撰組 # Created on: 1996年4月15日 # E-MAIL taka@web-kyoto.com 鷹 #saport http://www.web-kyoto.com/ #多機能掲示板掲示板 $COPYRIGHT = <<"EOF"; Board CGI Ver 3.05 Created by Web新撰組 with Try-angle Mix EOF #最終アップデート2000年6月12日 #Ver.3.05 #2000/6/8 #アイコン機能追加 #2000/6/12 #レスに指定したアイコンが表示されない不具合を修正 #辞書登録機能追加 #2000/7/24 #ロボット画像を自由にリンク出来るように変更 #アイコン画像自由設定機能追加 #FTPで設定ファイルを変更する必要がある。 #menu.csvファイルが必要です。 #ファイルは、漢字コードEUCです。 #ファイルの記述は、http://www.web-kyoto.com/100/chat/no61/menu.csv #を参考にして下さい。パーミッションは、今後の為に606 or 666 #次は、設定画面から登録出来るように変更予定 #課題 #IP排除機能、禁止語処理、高機能サブルーチン(今は秘密)の追加 ############################################################################### ############################################# #デザインデータの呼び込み $setfile = 'set.dat'; &get_data; ############################################# ############################################# # 初期設定 ############################################# #jcode.plまでの相対パス require './jcode.pl'; #メッセージを格納するデータベースファイル $datafile = 'board.dat'; #この掲示板のファイル名 $cgi = 'board.cgi'; #イメージ格納DIR $imagedir ='images'; #バックグランドの画像ファイル $bg_gif = ''; #管理者削除モードのパスワード $password = '1234'; #クッキーを格納する名前を設定する $CookieName = 'CatBoradSystem'; ###チャットロボットの名前 #ロボットカラー ###キーワード辞書のパス $dic = './d.dat'; ###ぼけ辞書のパス $dic2 = './d2.dat'; #画像リンクファイル $imgfile = 'menu.csv'; #スタイルシート $style = <<"EOF"; EOF ############################################# # 初期設定ここまで ############################################# ############################################# # 検索フォーム ############################################# $search_form = <<"EOF";
EOF ############################################# # 時刻フォーマット ############################################# &time; ############################################# #フォームデータコンバート ############################################# 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; $value =~ s//-->/g; $value =~ s/\r\n/
| $search_form | EOF if($bot_admin eq '1'){ print <<"EOF";EOF } print <<"EOF"; |
EOF &delete_form; &html_foot; exit; } ############################################# #削除画面 ############################################# sub deletemode { if($FORM{'password'} ne $password){ &error('パスワードが違います。エラー105'); } $count = @DATA; if ($count < 1) { exit; } &html_head; print <<"EOF"; $count
| 【$number】 | \n"; print "\n";
print "$subject\n";
print " 投稿者:\n";
if ($email ne '') { print "" . $name . " \n"; print "$message\n"; print " | \n";
print "
$COPYRIGHT
$msg
ブラウザーの戻るボタンで戻って下さい。
| \n";
print " |
\n";
$i = 1;
foreach $line (@DATA) {
($da,$co,$nxco,$re,$na,$em,$H,$su,$bo,$mess,$kaog) = split(/\,/,$line);
if ($number eq $re) {
if ($i == 1) {
$ulflag = 1;
print "
\n"; } print " |
| $number:題名:$subject 投函者: EOF if ($email ne "") { print "$name\n"; } else { print "$name\n"; } print <<"EOF"; $date | |
|
$message |
EOF } $page_line = $pend +1; if ($pend ne $dcount) { print <<"EOF";
EOF } print <<"EOF";| あなたのセンス良い登録をお待ちしております。 キーワードに教えたい項目を、 返事にキーワードに対する返事を入力して下さい。 |
\n"; } #HTML出力 foreach $line (@ines) { ($keyword,$response,$ip) = split(/ \^: /,$line);##改造IP追加 $keyword =~ s/</g; $keyword =~ s/>/>/g; $keyword =~ s/"/"/g; $response =~ s/</g; $response =~ s/>/>/g; #$response =~ s/"/"/g; $response =~ s/img//ig; $response =~ s/imag//ig; $response =~ s/input//ig; $response =~ s/form//ig; $response =~ s/foformrm//ig; $response =~ s/script//ig; $response =~ s//form//ig; $response =~ s/applet//ig; $response =~ s/table//ig; $response =~ s/select//ig; $response =~ tr/+/ /; $response =~ s/select//ig; $response =~ s/plaintext//ig; $response =~ s/enb//ig; $ip =~ tr/+/ /; } print <<"EOF";
|
言葉登録の際のご注意
ちょっとした登録のテクニック 「人工無能」は、キーワードに正規表現を使って言葉を覚えさせると、ちょっと凝った返事を覚える事が出来ます。 その例を以下に挙げます。
この場合、わざわざ「^」とか「\$」とかを入力する必要はありません。 ラジオボタンで「先頭」か「後ろ」かを選択すれば、登録する時に自動的に正規表現を追加します。
全角だと、正規表現として認識する事が出来ません。 正規表現をいくつか使って、ちょっと複雑な登録の仕方も出来ます。 |
^や$は、使用する事は出来ません!!')
if ($keyword =~ m/\$.+/ || $keyword =~ m/[^\^]+\^/);
#正規表現の分岐
if ($regu == 0){$keyword = "$keyword";}
if ($regu == 1){$keyword = "\^$keyword";}
if ($regu == 2){$keyword = "$keyword\$";}
if (!open(DB,"$dic")) { &error('辞書データファイルが見つかりませんエラー109'); }
@lines = EOF exit; } sub ini_bat { print "Content-type: text/html\n\n"; print <<"EOF";