特徴 / Sample / ダウンロード / 設置方法 / その他(SPAM対策)/
▲
○ 特 徴
- 管理者は、MessageBoardの全ての記事を見ることができます。
- 管理者以外は、入力した名前とパスワードが一致している書き込み(とそれに対する返信)だけ見ることができます。
- 自分の書き込みを削除できます。管理者は全ての記事を削除できます。(ただし、元記事を削除すると、それに対する返信も一緒に削除することになります。)
- 管理者の書き込みは誰でも見ることができます。
- Cookieを利用して、名前とパスワードを覚えさせるので、二回目からは名前とパスワードを入力する必要がありません。
- 管理者宛にメールで書き込み内容を送信するかどうか選択できます。(sendmailを使用できるサーバーだけ。)
- アイコン式。アイコン式にするかどうかは選択できます。アイコンの数はいくつでも。(Ver.0.2から)
- 投稿者に返信をメールで通知します。通知するかどうか、またその機能をつけるかどうか、選択できます。(sendmailを使用できるサーバーだけ。) (Ver.0.2から)
返信をメールで通知する記事投稿者の名前には*マークが付きます。
- 管理者モードのときのみ、記事投稿者のホスト名を表示。(Ver.0.2から)
- 各返信も削除できます。返信のフォームは別になりました。(Ver.0.3から)
- レスがついた記事が上に来るようにできます。(Ver.0.3から)
▲
○サンプル
- Sample
- 名前を管理人、パスワードをmasterにすれば管理人モードになります。テスト書き込み、編集は自由ですが、公序良俗に反した書き込みはおやめくださいね。
- 名前のところに*がついている人には、返信がメールで届きますので、テスト書き込み時にはくれぐれもご注意ください。
- 他のサンプルではそんなことないのに、何故かこのサンプルだけ、胡散臭い商用書き込みや不愉快な書き込みが何度となくされています。見つけるたびに削除し、そのホストアドレスからのアクセス拒否の処置をしているのですが、 やはりしつこく書き込みがあります。そこで、もう少しアクセス拒否の範囲を広くし、アクセスがあった場合にエラーメッセージを出すのではなく、あるURLへ自動的にジャンプするように処置しました。
これで多少は不愉快な書き込みが減るといいのですけれど、反対に同じアクセスポイントを利用している無関係の方に迷惑をかけてしまうことも考えられます。申し訳ありません。 自分は無関係なのに、という方はお使いのホストアドレスをお書き添えの上、管理人までご連絡ください。▲
○ダウンロード
↓から、Message Boardの設置に必要なファイルがダウンロードできます。
指定した名前をつけて保存してください。
- message_cgi.txt------日記BのCGI本体。ファイル名をmessage.cgiにして保存してください。
- jcode.pl------日本語変換perl。ファイル名をjcode.plにしてください。
- message.dat-------------ログファイル。(空ファイル)
- url.gif-----url.gif(画像ファイル)。投稿者がURLを記述してくれた場合、この画像にリンク。(これでなくてもいい)
- res.gif-----res.gif(画像ファイル)。返信フォームへのリンクをはるための画像。(これでなくてもいい)
▲
○設置方法
- あなたのサーバーでCGIが使えるかどうか確認する。
- CGIの設定を変更する。
テキストエディタで、message.cgiを開き、初期設定の部分を修正してください。
また、全てのファイルは同じフォルダに入れてください。違うフォルダに入れる場合は、必要に応じて変更してください。
#で始まる行、または行の#から後の部分はコメントなので、削除して結構です。改行には注意してください。
詳しくはスクリプトの中に書いてあります。
設定の基本は、
$変数名 = "値";
という形になっています。この値の部分を修正してください。
- "(ダブルクォーティション)や;(セミコロン)を消さないように注意する。
- 値の中で"(ダブルクォーティション)や;(セミコロン)を使わない。('(シングルクォーティション)で囲まれた値の中なら大丈夫)
- 数字やアルファベットは半角で。
- 値の中で@マークを使うときは、必ず@の前に\をつける。
- 画像ファイルの指定などはCGIの位置から見た相対パスまたはhttp://から記述したURLで。相対パスがわからなければ、全てのファイルをCGIと同じフォルダに入れて、ファイル名だけを記述するといい。
- サーバーにアップロードする。
FTPソフトでサーバーに、message.cgi,jcode.pl,message.datをアップロードしてください。そのとき、必ずアスキーモード(テキストモード)にすること。
背景画像や罫の画像、アイコンの画像をアップロードしてください。こちらはバイナリモードで。
- パーミッションを変更する。
message.cgiのパーミッションを755に変更する。
Message Boardは、ファイルをロックするために、ロックディレクトリを使っていますので、プロバイダの設定によっては、 CGIの入っているフォルダのパーミッションを変更する必要があります。一般的には777です。
(サーバーの設定にあわせてください。)
- webページから呼び出す。(リンクを貼る)
http://(message.cgiのあるフォルダまでのパス)/message.cgi
で呼び出すことができます。
これでまともに動くようであれば、このアドレスへのリンクをwebページに貼ってできあがりです。
(http://から指定しなくても、相対パスで大丈夫です。)
▲
○その他
- SPAM対策
- SPAM書き込み、嫌ですね。Message Boardは自分の記事しか見えない掲示板ですので、掲示板を見て下さる方にはSPAMも関係ないのですが、 管理者には全部の書き込みが見えるので、やっぱりうんざりです。
そこで、「指定した言葉を本文中に含めないと書き込めない」ようにして、SPAMに対抗してみましょう。
改造になるので、まずは手を入れない状態で設置して、動作するのを確認してください。
Winならメモ帳、Macならシンプルエディタなどのテキストエディタを用意してください。
これから書くスクリプトの行数は、論理改行(改行マークまでで1行と数える。折り返しは行数にカウントしない)での行数です。
以上です。
- Message.cgiの15行目、何もない行に次の1行を挿入する。
$keyword = "こんにちは"; #SPAM対策キーワード。管理者の名前など。管理者以外は、ここに設定した言葉が本文に含まれていないと書き込めない。- Message.cgiの190行目($pwd = &crypt_pass($c_pwd);)の次に、次の1行を挿入する。
($FORM{'message'} =~ /$keyword/ || $c_name eq $kanri && $c_pwd eq $password) || return;
書き込めない場合にエラー表示を出したいときは、↑の2つめを次に変更。
- Message.cgiの190行目($pwd = &crypt_pass($c_pwd);)の次に、次の1行を挿入する。
($FORM{'message'} =~ /$keyword/ || $c_name eq $kanri && $c_pwd eq $password) || &error(0,"SPAM対策のキーワードをメッセージ内に含めてください。");
- IP表示について
- 名前の横にIPアドレスが表示されています。 これは管理者モードのときのみ表示されるのですが、表示させたくないと言う方がいるので、一応表示させない方法を書いておきます。
- Message.cgiの452行目、
($c_name eq $kanri && $c_pwd eq $password) && print "<font size=-1> ($basedatas[7])</font>";の行頭に#(半角で)をつけてください。
それだけでOKです。
- 更新履歴。
- Ver.0.1-----2000/9/9、1対多掲示板CGIを改造して作成。
- Ver.0.11-----2000/11/17、ミスを訂正。 (書き込み通知機能で変数のタイプミス・・・(^^;))
- Ver.0.2-----2000/11/20。投稿者への返信通知機能をつける、アイコン式にする。
- Ver.0.3-----2001/8/9。レスフォームを別にする、レスのついた記事を上にする、などの機能をつける。
- Ver.0.31-----2001/9/12、ミスを訂正。
- 注意。
- セキュリティは万全ではありません。ログファイルを見られたら、投稿者の書き込み内容はわかってしまいます。 知られたくない個人情報は書き込まないようにしてください。利用者にも注意を促してください。
- Ver.0.2とログの互換性はありません。(パスワードと名前のCookieはCookie名が同じなら有効。)
- 一言フォーム
- 一言フォームです、足りない場合は管理者宛私書箱へどうぞ。