#! /usr/local/bin/perl $mailprog = '/usr/lib/sendmail'; $head= '=?iso-2022-jp?B?'; $tail= '?='; #■■■############## #$maildate="98/09/09 12:12:12"; #@FORM{'action'}='regist'; #@FORM{'name'}='雀部陽一郎'; #@FORM{'email'}='WJ6Y-SSB@j.asahi-net.or.jp'; #@FORM{'value'}='こんにちは、みなさん #お元気ですか?'; #$host='destroy@sasabe.com'; #@FORM{'subject'}='これはタイトルです。'; #@FORM{'page'}='http://www.sasabe.com/'; #■■■############## ;# ↑このパスはプロバイダによって違うので調べて設定する ;# (これはこのスクリプトの最初の1行になければならず、それより上に空行があってもいけません。) ;# (この設定が必要ないサーバもあります。一般的な場合を想定して解説を入れています。) ;# (他に、プロバイダからアナウンスされている情報を十分理解しておいてください。) ;# ;# 簡易BBS version 7.4(フリーソフト) ;# ;# Script written by Kazu.Y ;# Created on: 96/May/02 ;# Last Modified on: 97/May/23 ;# I can be reached at: rescue@ask.or.jp ;# Scripts Found at: http://www.ask.or.jp/~rescue/cgitips/ ;# ;# <利用規定の抜粋> ;# 1.このスクリプトは自分で使うために承諾なしに自由に改造することができます。 ;# 2.改造の有無にかかわらず、このスクリプトを再配布することはできません。 ;# 3.このシステムを有償で他人に設置してあげたりする行為は無断ではできません。 ########################################################################################### # # 基本構成(初期設定はこの構成を前提に解説します) # # public_html(ホームページディレクトリ) # | # |-- cgi-bin(任意のディレクトリ) # | # |-- jcode.pl (755) # |-- minibbs.cgi (755) # |-- minibbs.dat (666) # # ・この minibbs.pl は minibbs.cgi にファイル名を変更する # ・minibbs.dat は中身が空っぽのファイルをパソコン上で作成して転送する # ・このシステムに必要な3つのファイルを同じ場所に設置する # ・( )内はパーミッッション値 # ・jcode.plは中身を全くいじらずにそのままアスキー転送する # ・jcode.plはjperlでは利用できないので注意すること # ・これら3つのファイルはアスキーモードで取り扱う(転送)すること # ########################################################################################### #----------------# # 初期設定 # #----------------# #--- 必ずあなたの環境に合わせて書き替える項目 --------------------------------------------# # 削除モード移行パスワードの設定(''内に任意のパスワードを記述する) $password = 'toshiko'; # 掲示板の名前 $title = '久美沙織オンラインファンクラブ掲示板'; # このスクリプトをURLで設定 $reload = 'http://www.sasabe.com/SF/kumi/minibbs.cgi'; # 画面に張る「戻る」リンクをURLで設定(相対設定でも可) $modoru = 'http://www.sasabe.com/SF/kumi/'; # クッキーを格納する名前を設定する # 複数の簡易BBSまたは他スクリプトで同じ名前のクッキーを使用すると弊害がある場合があります。 # 任意の英数字を設定します。クッキー機能はサーバが対応していなければ動作しませんが、 # この掲示板のその他の動作に影響はありません。複数設置する場合はこの名前を別々に付けます。 # 半角英数字であれば名前は何でも構いません。 $cookie_name = '01234567'; # ■おしらせ # # 投稿したら「他サイトからの投稿はできません」というメッセージが表示されてしまった # 場合は、このスクリプトの下の方にある「■注」を読んで対処してください。 #-----------------------------------------------------------------------------------------# #--- 必要に応じて設定する項目 ------------------------------------------------------------# # タグを使えるようにするかどうかの設定 # については入力フォームが用意してあるので、いたずらやタグの # 閉じ忘れ等による混乱を避けるためにできるだけ使えないようにしておくことをお勧めします。 # 使える:1 使えない:0 $tag = 0; # 文字色や背景などの設定(通常の
タグ) # 題名と投稿者色はスクリプト内のタグを探して設定してください。 $body = ''; # 1ページに表示する件数 $def = 20; # 書き込み件数の最大登録数の設定です。この件数を超えると、古いものから削除されていきます。 # ページ処理機能が付きましたので、この件数を大きくしても一度に表示される記事数は限定されます。 # 記録されたファイルの巨大化を防止する為に、ある程度の件数で自動削除されるようにします。 $max = '100'; # 日本語コード変換ライブラリ # この jcode.pl を minibbs.cgi と違うディレクトリに設置する場合は相対的に設定すること require '../hashimoto/jcode.pl'; #require 'Macintosh HD:Desktop Folder:jcode.pl'; # 内容が書き込まれる記録ファイルのパスを設定 # この minibbs.dat を minibbs.cgi と違うディレクトリに設置する場合は相対的に設定すること #$file = 'Macintosh HD:Desktop Folder:minibbstext.dat'; #$file = "./minibbstextplusmail.dat"; $file = "./minibbstext.dat"; #■■■■■■配送先の氏名とメールアドレスを記録したファイルのパスを設定■■■■■■ #この haisousaki.dat を minibbs.cgi と違うディレクトリに設置する場合は相対的に設定すること $haisousaki = './haisousaki.dat'; $ConfigBcc = './ConfigBcc.dat'; $ConfigSubj = './ConfigSubji.dat'; $ConfigFrom = './ConfigFrom.dat'; $ConfigMemo = './ConfigMemo.dat'; # 海外サーバ等で時差が生じる場合は修正します # 海外時間に+9時間する場合 = localtime(time + 9*60*60); # 海外時間に−9時間する場合 = localtime(time - 9*60*60); # (参考)timeには1970年からの秒数が入っています ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime(time + 32400); # クッキーの消化設定 # 最終書き込みから 30日後 30*24*60*60 # 1日後 24*60*60 # 10時間後 10*60*60 $ENV{'TZ'} = "GMT"; # 国際標準時を取得する ($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = localtime(time + 30*24*60*60); # 入力形式の設定 標準入力:post その他:get # 投稿ボタンを押して Method not implemented.. というエラーが出る場合は get で試すこと $method = 'post'; ########################################################################################### # # ・スクリプトの中身を書き替える場合は、perlやCGIやHTMLなどのそれなりの知識が必要です。 # ・設置に関する質問はチャレンジCGI専用掲示板をご利用ください。改造の質問は受けません。 # http://www2r.meshnet.or.jp/~rescue/webboard/ # ・改造についての質問はメーリングリストをご利用ください。 # http://www.ask.or.jp/~rescue/ML/ # ########################################################################################### # 上記のlocaltimeで取得した$monには0から11までの数字が入るので修正処理 $month = ($mon + 1); # 時刻を2桁に統一する処理(削除処理に関係するので書き替えないこと) 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"; } # 曜日変換処理 # $wdayには0から6までの数字が入り曜日に対応している $y0="日"; $y1="月"; $y2="火"; $y3="水"; $y4="木"; $y5="金"; $y6="土"; $youbi = ($y0,$y1,$y2,$y3,$y4,$y5,$y6) [$wday]; # 時刻フォーマット(削除処理に関係するので書き替えないこと) $date_now = "$month月$mday日($youbi)$hour時$min分$sec秒"; # フォーム入力されたデータを$bufferに格納する(getかpostかによって取得方法が異なる) if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } # $bufferに格納されたFORM形式のデータを取り出す @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/\n//g; # 改行文字はデータの記録に影響があるので消去する if ($tag) { # 掲示板に書き込まれたくないタグを設定する(タグが使える場合に有効) if ($value =~ /