蓄々掲示板

特徴

  • SSIなどでHTMLに埋め込み可能な掲示板CGIスクリプトです。
  • Shift_JIS、EUC、JISでの出力に対応しています。
  • デザインをほぼ自由にカスタマイズ出来ます。
  • 書き込みの削除、復活が行えます。
  • HTMLでも、XHTMLでも記述可能です。CSSも適用できます。

利用条件

ダウンロード

ChangeLog

  • 2003-03-18 rev1.3 conf.cgiの記述ミスを修正。
  • 2003-02-10 rev1.2 管理ログインページの記述ミスを修正。
  • 2003-02-03 rev1.1 公開。

スクリプトの修正

bbs.cgi

#!/usr/bin/perl

conf.cgi

# 蓄々掲示板 設定ファイル rev1.1
# このファイルの文字コードはshift_jisで保存して下さい。
#
#____設定ここから

# 管理パスワード(必ず設定して下さい)
$conf{'password'} = '';

# 掲示板のタイトル(logview、adminで使用されます)
$conf{'title'} = '蓄々掲示板';

# 出力する文字コード ( sjis , euc , jis )
# 埋め込み先のHTMLの文字コードと同じにしてください
$conf{'charset'} = 'sjis'; 

# 埋め込み先のURL ( httpから全て記述してください )
$conf{'return_url'} = 'http://localhost/index.shtml';

# bbs.cgiのURL
$conf{'cgi'} = 'http://localhost/cgi-bin/ccbbs/bbs.cgi';

# 埋め込み時の表示件数
$conf{'viewline'} = 5;

# logview時の表示件数
$conf{'viewline_logview'} = 10;

# 自動リンクをする ( 1 = on )
$conf{'autolink'} = 1;

# 自動リンク時に置換する名前(空の場合はURLがそのままリンクされます)
$conf{'urlreplace'} = '';

# 自動リンク時のtarget属性の値(空白以外の場合にtarget属性が挿入されます)
# 例:_blank  ... 新規ウィンドウ
#     _top    ... 親フレーム
$conf{'target'} = '';

# 書き込める名前+文章の最大長(単位:byte)
$conf{'maxlength'} = 2048;

# 改行を無視する ( 1 = on )
$conf{'nobreak'} = 0;

# 連続書き込み停止時間(単位:秒)
$conf{'stoptime'} = 10;

# ログの最大保存件数(多いほどサーバーに負荷がかかります)
$conf{'maxlog'} = 300;

# サーバーとの時差(単位:秒)
$conf{'timediff'} = 0;

# 全体のデザイン
# {cgi}          ... cgiのURL
# {message_list} ... 書き込み一覧
# {navi}         ... logviewでのナビゲーション表示
$conf{'html_body'} = <<"EOM";
<div style="font-size:82%;background-color:#fff;border:1px solid #666;padding:1ex">
<form action="{cgi}" method="post" name="ob" style="margin:0">
<p style="margin:0">
Name:<input type="text" name="name" size="8" value="" style="border:1px solid #888">
 E-Mail:<input type="text" name="email" size="16" value="" style="border:1px solid #888"><br>
Message:<br>
<textarea name="text" cols="40" rows="4" style="border:1px solid #888"></textarea><br>
URL:<input type="text" name="url" size="30" value="" style="border:1px solid #888">
 <input type="submit" value="write" style="color:#000;background-color:#ccc;border:1px outset #888">
<input type="hidden" name="mode" value="write">
</p>
</form>
<hr style="height:1px;color:#aaa;border-style:dotted">
{message_list}
{navi}
<p style="margin:0;text-align:right">
<a href="{cgi}?mode=logview">logview</a>
 / <a href="{cgi}">admin</a>
 / Script made by <a href="http://www.akiyan.com">蓄積多趣味人</a>
</p>
</div>
EOM

# 一書き込みのデザイン
# {name}   ... 名前(E-Mailアドレスがある場合はリンク付き)
# {text}   ... 文章
# {YEAR}   ... 4桁年
# {year}   ... 2桁年
# {mon}    ... 月
# {mday}   ... 日
# {hour}   ... 時
# {min}    ... 分
# {sec}    ... 秒
# {number} ... 書き込み番号
# {url}    ... URL
# {url_link}   ... URLへのリンク
$conf{'html_message'} = <<"EOM";
<p style="margin:0">
<span style="font-weight:bold">{name}</span> - {YEAR}/{mon}/{mday} {hour}:{min} - No.{number}
</p>
<p style="margin:0.5em 1em;line-height:120%">
{text}
</p>
{url_link}
<hr style="height:1px;color:#aaa;border-style:dotted">
EOM

# URLへのリンクのデザイン
# {url} ... URL
$conf{'html_url'} = <<"EOM";
<p style="margin:0 1ex;font-style:italic">URL: <a href="{url}">{url}</a></p>
EOM

# logviewの全体のデザイン(charsetは必ずshift_jis)
# {title}      ... タイトル
# {body}       ... 書き込み一覧
# {return_url} ... 埋め込むページのURL
$conf{'html_logview'} = <<"EOM";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Trasitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<meta http-equiv="content-style-type" content="text/css">
<title>{title}</title>
</head>
<body>
<h1 style="font-size:100%;margin-bottom:1ex;text-align:center">{title}</h1>
{body}
<p style="font-size:82%"><a href="{return_url}">Return</a></p>
</body>
</html>
EOM

# logviewでのナビゲーションのデザイン
$conf{'html_navi'} = <<"EOM";
<p style="margin:0"><a href="{cgi}?mode=logview&start={start}">Next Page</a></p>
EOM

#____設定ここまで

重要な設定項目

#!/usr/bin/perl
プロバイダで定められたPerlへのパスを指定します。よくある例としては #!/usr/bin/perl もしくは #!/usr/local/bin/perl です。
$conf{'password'} = '';
管理パスワードです。必ず設定してください。空の場合は管理ログインで警告が出ます。
$conf{'charset'} = 'sjis';
埋め込み先のHTMLの文字コードと同じにしてください。異なる場合は、文字化けしてしまいます。
$conf{'return_url'} = 'http://localhost/index.shtml';
埋め込まれるページのURLを、httpから全て記述してください。
$conf{'cgi'} = 'http://localhost/cgi-bin/ccbbs/bbs.cgi';
bbs.cgiのURLを、httpから全て記述してください。
$conf{'nobreak'} = 0;
書き込みがあったとき、改行を無視して1行にします。

ディレクトリ構成例

public_html /
      |
      +-- ccbbs / bbs.cgi  [755] メインプログラム
                / conf.cgi [644] 設定ファイル
                / jcode.pl [644] 文字コード変換ライブラリ
                / log.cgi  [666] ログファイル

使い方

HTMLに記述するタグの文法
<!--#include virtual="パス/bbs.cgi?mode=latest" -->
記述例
<!--#include virtual="/cgi-bin/ccbbs/bbs.cgi?mode=latest" -->
書き込みの管理
bbs.cgiを開くか、掲示板下部のadminリンクを開いて下さい。
掲示板に直接リンクする場合の記述例
<a href="http://www.akiyan.com/cgi-bin/ccbbs/bbs.cgi?mode=logview">BBS</a>

特殊な使い方

管理人だけが書き込み可能にする
conf.cgiのデザインで<form>タグから</form>タグまでを削除します。書き込みは管理ページから行えるので、管理人だけが書き込めるようになります。

不具合報告や要望などは

メールフォームからご連絡ください。

関連リンク