99章.お役立ちperlプログラム

99.10.フォロー形式掲示板(Forum)

いわゆる掲示板ですが,記事索引をスレッド単位に階層構造で表示するスクリプトです。


デモ

稼働中のものなので,見るだけならOKですよ(^^; テストのための投稿はしないで下さい


99.10.1.主な特徴

  1. 指定したURL階層以外のページからの不正利用を防止します
  2. 投稿者のIP情報を取得。プロキシ経由にも対応
  3. フォローする場合,元記事を引用する
  4. スレッド中の全記事を表示
  5. スレッドの親記事へのリンク表示
  6. フォローした元記事へのリンク表示
  7. 連続する2行以上の改行を,2行に設定 $value =~ s/\n{2,}/\n\n/g;
  8. IPアドレスまたはドメイン名で動作を拒否することができる
99.10.2.掲示板の機能(CGIへの引数)

機能引数:actnopos
記事一覧i
記事の最新順表示n
記事の過去順表示o
新規記事投稿用フォームの表示w

スレッド中の全記事を表示s
記事表示d
フォロー記事投稿用フォームの表示f
書き込み処理p自動生成

act省略時は,dが既定値 ◎は引数が必要です △は引数が必要な場合があります
引数は特に考えなくても,プログラムの方で自動的に作ります

99.10.3.管理ファイルの内容

  1. 通番管理ファイル
    記事の最後の通し番号(n)が入っています
    n<LF> の,1レコードだけです。一番最初は空のファイルです

  2. スレッド管理ファイル
    記事一件につき
      階層レベル<通し番号<親記事番号<LF>
    という,レコードです。一番最初は空のファイルです

  3. 記事ファイル
    001.txt〜999.txt の,999個の記事を記録できます
    始めの一行目が管理用のヘッダで,二行目以降は記事の本文です
     管理用ヘッダ タイトル<書き込み日時<投稿者名<メールアドレス<元記事番号<親記事番号<IP情報<LF>
    書き込み日時は,perlのtime関数値です。9桁の数値で,年月日や時分秒や曜日などが復元できます
99.10.4.設置方法

forum.txt フォロー形式掲示板 Forum.pl

をダウンロード後に,自分の環境に合わせて修正して下さい。

主な修正箇所はベースになるURLのパスとファイル名です。

$base = 'http://www.hogehoge.(or|ne).jp/~foo/'; #ベースになるURL
      http://www.hogehoge.or.jp/~foo/ か
      http://www.hogehoge.ne.jp/~foo/ の階層下でのみ動作
$pg = 'forum.cgi'; #このスクリプト名
$cfile = 'xcnt.txt'; #通番管理ファイル
$ifile = 'xidx.txt'; #スレッド管理ファイル
$dfile = 'bbs/'; #記事ファイルの格納されるディレクトリ
$max = 12; # 1ページ当たりの表示記事数

/home/foo/
I
I-- user/
I     I-- forum.html 表示用メインページ
I     I-- forumi.html ナビゲータ・フレーム
I     I-- forumm.html 初期メッセージ
I
I-- cgi-bin/
I     I-- forum.cgi スクリプト本体
I     I-- jcode.pl 日本語コード変換フリーウエア
I     I-- xcnt.txt 投稿時に自動更新
I     I-- xidx.txt 投稿時に自動更新
I     +-- bbs/
I           +-- 001.txt 〜 999.txt 投稿時に自動生成
I
+-- gif/
      I-- back.gif 背景画像
      I-- new1.gif 親記事画像
      +-- new2.gif フォロー記事画像

修正したスクリプトをftpで/home/foo/(任意)ディレクトリへ転送します

kibita(*)cd /home/foo/cgi-bin
kibita(*)put forum.txt forum.cgi
kibita(*)quote site chmod 705 forum.cgi
kibita(*)touch xcnt.txt
kibita(*)quote site chmod 606 xcnt.txt
kibita(*)touch xidx.txt
kibita(*)quote site chmod 606 xidx.txt
kibita(*)mkdir bbs
kibita(*)quote site chmod 706 bbs

99.10.5.ファイル中の漢字コードの扱い

本スクリプトは,ファイル中で使用されている漢字のコードがsjisコードです。
sjisでないと管理用ヘッダで,<を区切りとして使用できません。
 $value =~ s/</&lt;/g;
 $value =~ s/>/&gt;/g;
の行を削除すれば,本文中でタグが利用できます。


[HOME][戻る]

Copyright (c)1998 GOMASUKE
Since 06/05/1998, Last Updated 06/05/1998