蓄々一行掲示板 v2
- 特徴
- 利用条件
- ダウンロード
- ChangeLog
- スクリプトの修正
- 重要な設定項目
- ディレクトリ構成例
- 使い方
- 特殊な使い方
- infoseek iswebでの利用について
- FAQ
- 不具合報告や要望などは
- 頂いた要望と返答
- 関連リンク
特徴
- SSIなどでHTMLに埋め込み可能な一行掲示板CGIスクリプトです。
- Shift_JIS、EUC、JIS、UTF-8での出力に対応しています。
- デザインを自由にカスタマイズすることが出来ます。
- 書き込みの並び順を選択することが出来ます。
- 書き込みの削除、復活が行えます。
- HTMLでも、XHTMLでも記述可能です。CSSも適用できます。
- 一度入力された名前をクッキーに保存し、次回アクセス時に参照することができます。
利用条件
- フリーソフト利用規定をご覧下さい。
ダウンロード
- rev1.9 1linebbsv2_rev19.zip
ChangeLog
- rev1.9 utf8に対応した。頂いている要望を変更した。(2003-12-05)
- 頂いている要望を追記。(2003-11-19)
- rev1.8 クッキーの使用を選択できるようにし、使用しない場合は完了ページを出さないようにした。(2003-05-28)
- FAQを追記。(2003-05-13)
- infoseek iswebでのご利用についてを追記。(2003-04-26)
- rev1.7 完了ページのデフォルトデザインにmeta refreshを追加。設定項目にリフレッシュまでの秒数を追加。(2003-03-27)
- rev1.6 名前をクッキーに保存・参照機能、メッセージ並び順変更機能、書き込み完了ページを追加。(2003-03-26)
- rev1.5 conf.cgiの記述ミスを修正。(2003-03-18)
- rev1.4 管理ログインページの記述ミスを修正。(2003-02-10)
- rev1.3 conf.cgiの管理ページのスタイルシート設定項目を無効にし、管理ページで表がウィンドウからはみ出て表示される問題を修正。(2003-01-08)
- rev1.2.1 管理ページに書き込みフォームを追加。自動リンクのtarget属性設定を追加。(2002-12-26)
- rev1.2 日付が1ヶ月遅れて表示される問題を修正。(2002-12-23)
- rev1.1 公開。(2002-12-19)
スクリプトの修正
bbs.cgi
#!/usr/bin/perl
conf.cgi
# 蓄々一行掲示板 v2 設定ファイル
# このファイルの文字コードはshift_jisで保存して下さい。
#
#____設定ここから
# 管理パスワード(必ず設定して下さい)
$conf{'password'} = '';
# 掲示板のタイトル(logview、adminで使用されます)
$conf{'title'} = '一行掲示板';
# 出力する文字コード ( sjis , euc , jis , utf8 )
# 埋め込み先のHTMLの文字コードと同じにしてください
$conf{'charset'} = 'sjis';
# 設置するURL ( httpから全て記述してください )
$conf{'return_url'} = 'http://';
# bbs.cgiのURL
$conf{'cgi'} = 'http://***/cgi-bin/1linebbs_v2/bbs.cgi';
# 埋め込み時の表示件数
$conf{'viewline'} = 8;
# logview時の表示件数
$conf{'viewline_logview'} = 30;
# 埋め込み時のメッセージ並び順
# 0 ... 新しい順
# 1 ... 古い順
$conf{'vieworder'} = 0;
# logview時のメッセージ並び順
# 0 ... 新しい順
# 1 ... 古い順
$conf{'vieworder_logview'} = 0;
# cookieの使用(使用すると完了ページが出るようになります)
# 0 ... 使用しない
# 1 ... 使用する
$conf{'use_cookie'} = 0;
# 完了ページから自動で戻るまでの時間 (秒)
$conf{'refresh_time'} = 5;
# 自動リンクをする ( 1 = on )
$conf{'autolink'} = 1;
# 自動リンク時に置換する名前(空の場合はURLがそのままリンクされます)
$conf{'urlreplace'} = '';
# 自動リンク時のtarget属性の値(空白以外の場合にtarget属性が挿入されます)
# 例:_blank ... 新規ウィンドウ
# _top ... 親フレーム
$conf{'target'} = '';
# 書き込める名前+文章の最大長(単位:byte)
$conf{'maxlength'} = 512;
# 連続書き込み停止時間(単位:秒)
$conf{'stoptime'} = 10;
# ログの最大保存件数(多いほどサーバーに負荷がかかります)
$conf{'maxlog'} = 300;
# サーバーとの時差(単位:秒)
$conf{'timediff'} = 0;
# 全体のデザイン
# {cgi} ... cgiのURL
# {message_list} ... 書き込み一覧
# {navi} ... logview時のナビゲーション表示
# {cname} ... cookieから読み出した名前
$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="{cname}" style="border:1px solid #888">
Message:<input type="text" name="text" size="40" 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">蓄積 akiyan.com</a>
</p>
</div>
EOM
# 書き込み1行のデザイン
# {name} ... 名前
# {text} ... 文章
# {YEAR} ... 4桁年
# {year} ... 2桁年
# {mon} ... 月
# {mday} ... 日
# {hour} ... 時
# {min} ... 分
# {sec} ... 秒
# {number} ... 書き込み番号
$conf{'html_message'} = <<"EOM";
<p style="margin:0">
[<span style="font-weight:bold">{name}</span>] {YEAR}/{mon}/{mday} {hour}:{min} No.{number}<br>
{text}
</p>
<hr style="height:1px;color:#aaa;border-style:dotted">
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
# 書き込み完了ページのデザイン
# {title} ... タイトル
# {return_url} ... 埋め込むページのURL
# {refresh_time} ... 完了ページから自動で戻るまでの時間
$conf{'html_write_finish'} = <<"EOM";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Trasitional//EN">
<html lang="ja">
<head>
<meta http-equiv="refresh" content="{refresh_time};url={return_url}">
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<meta http-equiv="content-style-type" content="text/css">
<style type="text/css">
h1 {
font-size:100%;
font-weight:bold;
margin:0;
}
body {
padding:1%;
}
</style>
<title>{title}</title>
</head>
<body>
<h1>{title} 書き込み完了</h1>
<hr>
<p style="text-align:center;line-height:3em">
<span style="font-weight:bold">{title} への書き込みが完了しました。</span><br>
{refresh_time}秒後に自動で元のページへ戻ります。<br>
(環境によっては自動で切り替わりません)</p>
<p style="text-align:center"><a href="{return_url}">戻る</a></p>
<hr>
<p style="text-align:right"><a href="{cgi}?mode=logview">logview</a>
/ Script made by <a href="http://www.akiyan.com/">蓄積 akiyan.com</a></p>
</body>
</html>
EOM
#____設定ここまで
重要な設定項目
- #!/usr/bin/perl
- プロバイダで定められたPerlへのパスを指定します。よくある例としては #!/usr/local/bin/perl もしくは #!/usr/bin/perl です。
- $conf{'password'} = '';
- 管理パスワードです。必ず設定してください。空の場合は管理ログインで警告が出ます。
- $conf{'charset'} = 'sjis';
- 埋め込み先のHTMLの文字コードと同じにしてください。異なる場合は、文字化けしてしまいます。
- $conf{'return_url'} = 'http://';
- 埋め込まれるページのURLを、httpから全て記述してください。
- $conf{'cgi'} = 'http://***/cgi-bin/1linebbs_v2/bbs.cgi';
- bbs.cgiのURLを、httpから全て記述してください。
ディレクトリ構成例
- public_html/
- [755] 1linebbs_v2/
- [755] bbs.cgi
- [644] conf.cgi
- [666] log.cgi
- [644] Jcode.pm
- [755] Jcode/
- [644] すべてのファイル
- [755] Unicode/
- [644] すべてのファイル
- [755] 1linebbs_v2/
使い方
- HTMLに記述するタグの文法
- <!--#include virtual="パス/bbs.cgi?mode=latest" -->
- 記述例
- <!--#include virtual="./cgi-bin/1linebbs_v2/bbs.cgi?mode=latest" -->
- 書き込みの管理
- bbs.cgiを開くか、掲示板下部のadminリンクを開いて下さい。
- 掲示板に直接リンクする場合の記述例
- <a href="http://www.akiyan.com/cgi-bin/1linebbs_v2/bbs.cgi?mode=logview">BBS</a>
特殊な使い方
- 管理人だけが書き込み出来るようにする
- conf.cgiのデザインで<form>タグから</form>タグまでを削除します。書き込みは管理ページから行えるので、管理人だけが書き込めるようになります。
infoseek iswebでの利用について
infoseek iswebでは、トップページでのssiによるcgi埋め込みは、他サイトから訪れたユーザーに対しては全てエラーとなってしまいます。infoseek iswebでは他サイトからのリンクでcgiを直接開けないように、httpサーバーに仕掛けを施してあるからです。これは、ssiでcgiを埋め込んだ場合も同様です。
例えば、蓄積 akiyan.comからinfoseek isweb内のページへリンクを設置します。そしてそれを開いた場合、埋め込みcgiはエラーとなってしまうでしょう。検索エンジンから開いた場合も同様です。ブラウザから埋め込みcgiのあるページを直接開いた場合と、(infoseekドメインの)サイト内でリンクを開いた場合はエラーにはなりません。
仕組みはブラウザがサーバーへ渡す環境変数の一つである HTTP_REFERER をサーバーが確認し、それがinfseek isweb以外であったときにcgiを動作させないようにしている様子です。(2003-04-26現在)
蓄々一行掲示板を使用する際はトップページ以外が望ましいですが、それでも直接そのページへリンクされた場合はエラーになりますので、完全な回避はできないといえます。
FAQ
- HTMLに埋め込もうとしていますが、うまくいきません。
- HTMLに埋め込ませるためには、一定の条件を満たしている必要があります。まずはとほほのSSI入門や、Apache チュートリアル: Server Side Includes 入門をお読み下さい。
- タグは使えますか?
- タグは全く使えません。
頂いた要望と返答
- タグを使えるようにしてください。
- 蓄々一行掲示板v2ではタグを許可する機能はつけません。
- 文字色を選べるようにして下さい。
- 蓄々一行掲示板v2では文字色を選ぶ機能はつけません。
- 画像のアップロード機能、画像の表示機能をつけてください。
- 蓄々一行掲示板v2では画像のアップロード機能、画像の表示機能はつけません。