更新日:2015年4月3日
使い方
admin.phpをテキストエディタで開いてユーザー名とパスワードを指定します。
解凍後のファイルをすべてアップロードします。
ブラウザでadmin.phpにアクセスし、ルームの追加・設定を行ってください。
対応予定がない機能
プロフィール登録をメールでお知らせ
私書箱通知をメールでお知らせ
プロフィールの項目名の一括設定
フレーム版での入室中の設定変更
JavaScript・CSSが使えないブラウザへの対応
同じブラウザ・違う名前での入室
PbsChat2から3への変更点
使用条件
PHP5以上(SQLite3が使用できること)
JavaScript・CSSが使えるブラウザ
(推奨).htaccessが使用できること
追加された機能
CSRF(クロスサイトリクエストフォージェリ)対策。
BBコードの一部(b,i,u,s,color,size)に対応。
マルチルームでも重くなりにくいよう、複数のルームから同一のファイルにアクセスすることがない設計になっております。
ノーフレーム版ではベルファイルを最初の発言時に一度だけ先読みして鳴らしますので、毎回のベル読み込みが発生しません。iPhoneでもベルが鳴ります。
参加者名にカーソルを合わせると、ROM、参加者の最終リロード時間がわかります。
入室中に再度入室した場合は、入室ログが表示されません。
スマホユーザーでも使いやすいよう、フレーム無し入室が選べます。指定の秒数で自動リロードします。
自発言消しが無くなった代わりに、過去10件分の自発言の修正、削除ができます。
ダイス・ささやき発言は削除できず、修正のみとなります。
長文モードで入室すると、発言が改行できます。
入室中に、ログ履歴を見ることができます。ROM禁止チャットでも、退室前にログを取得することができます。
過去ログを日付ごとに分類して見ることができます。
名前色と発言色を違う色にすることができます。
専用プロフィールツールが付属します。
・簡易日記機能
・簡易私書箱機能
・チャット入室時のメンバー認証機能
ダイス・ランダムアクションを数の制限なく設置できます。(Pbschat2では5個まで)
複数ダイスを設置する場合の改造方法が簡単になりました。
削除された機能
一つのチャットに、同じブラウザ・違う名前での入室はできません。
別名で入室したい場合は、複数のブラウザをお使いください。
スマホではない携帯(ガラケー)には対応しておりません。
フレーム版での入室中の設定変更。(ノーフレーム版では可能です)
PbsChat3 ファイル説明
改造の際の参考にどうぞ。読まなくても使用はできます。
ファイル構成(room1というチャットルーム名でルームを1つ追加した場合)
+--pbschat
.htaccess
admin.php
colorlist.php
favicon.ico
index.php
pbschat.css
+--default
db.sqlite3
dice.php
dice.sqlite3
dice_include.php
easy_csft.php
frame.php
historyjoin.php
historylog.php
index.php
insert.php
log.php
noframe.php
out.php
sasayakilist.php
set.php
showlog.php
top.php
update.php
+--room1(defaultをディレクトリごとコピーするので同構成)
db.sqlite3
dice.php
dice.sqlite3
dice_include.php
easy_csft.php
frame.php
historyjoin.php
historylog.php
index.php
insert.php
log.php
noframe.php
out.php
sasayakilist.php
set.php
showlog.php
top.php
update.php
+--profile
+--img
delete.php
diary.sqlite3
diaryedit.php
diarylist.php
diaryshow.php
diarywrite.php
entry.php
inbox.php
index.php
outbox.php
portrait.php
profile.sqlite3
regist.php
sendmessage.php
show.php
update.php
.htaccess
DBファイル(拡張子が.sqlite3のデータファイル)の中身と、チャットのデフォルト設定ディレクトリを覗けないように設定するためのものです。
IPアドレスやドメインでアクセス制限をしたい場合は、このファイルを編集します。
admin.php
管理者用ページです。
チャットのファイルをアップロードする前に、admin.phpをテキストエディタで開いて、以下の項目を設定してください。
// ログインユーザーとパスワード
$user = ‘user’;
$password = ‘1234’;
デフォルトルームの名称は、特に変更する必要はありません。
colorlist.php
チャットの入室画面で、名前色と発言色をクリックしたときに表示されるカラーリストです。
カラーの追加や削除を行えます。
初期状態ははJIS慣用色名の269色となっております。
色は改行で区切ります。
favicon.ico
お好きなファビコンファイルに入れ替えてお使いください。
index.php
チャットルーム一覧・参加者情報
pbschat.css
チャットとプロフィールのcss
default/db.sqlite3
ルーム設定・入室者情報・チャットログを記録したDB(データベース)ファイルです。
おすすめフリーソフトで紹介しているtksqlite.exeで中身を見ることができます。
default/dice.php
ダイスフォームを記入するファイルです。
ブログで紹介している拡張機能・ダイスを追加したい時に、コピーしたコードを貼り付けてください。
管理画面からチャットルームを作成すると、新たにホスト側にチャットルームのディレクトリが作成されますので、チャットルームごとのdice.phpを作成して該当ディレクトリにアップロードすることで、ルームごとに異なったダイスを使うことができます。
default/dice.sqlite3
ダイスの情報を記録するためのDBファイルです。
通常の6面ダイスやランダムアクションなどでは使用しません。
危機一髪・闇鍋・マガジンラックなどで使用します。
一つのDBファイルで20種類のダイスまで対応します。
default/dice_include.php
ダイスの処理を記入するファイルです。
ダイスフォームに対応した処理を記入しておく必要があります。
複数同時にダイスが実行された場合は、上から順番に発言に追加されます。
default/easy_csrf.php
CSRFを防ぐための処理をするファイルです。
参考サイト:PHPセキュリティ対策
default/frame.php
フレーム版で入室した場合の処理をするファイルです。
デフォルトのフレームの高さを変更したい場合にはこのファイルを変更します。
default/historyjoin.php
参加履歴。
参加履歴は、過去ログから入室と退室のログを抜き出しているだけですので、ログが消えれば同時に参加履歴も消えます。
表示する件数の調整をしたい場合は、LIMIT 20の数値部分を書き換えてください。
$sql = "SELECT nc, hc, gk, nm, wsa, dice1, hg, dice2, strftime('%m/%d-%H:%M:%S', ht) as ht, pr, id FROM log WHERE pr=4 or pr=5 ORDER BY log_idx DESC LIMIT 20";
default/historylog.php
入室中のログ閲覧。
初期状態では、過去10時間分のログを表示します。
変更したい場合は、’-10 hours’の数値を変更してください。
$sql = "SELECT nc, hc, gk, nm, wsa, dice1, hg, dice2, strftime('%m/%d-%H:%M:%S', ht) as ht, pr, id FROM log WHERE (pr=1 or pr=2 or pr=4 or pr=5 or (pr=3 and (wsa='ALL' or wsa='$snm' or nm='$snm'))) and ht>datetime('now','localtime','-10 hours') ORDER BY log_idx";
default/index.php
入室画面。
default/insert.php
チャットログの書き込み処理
default/log.php
入室中のログ表示
default/noframe.php
ノーフレーム版での入室処理・発言フォーム
default/out.php
退室処理。
default/sasayakilist.php
[ささやき]をクリックした時に読み込まれる、入室者のリスト
default/set.php
設定ファイル
default/showlog.php
過去ログ閲覧
default/top.php
フレーム版で入室した場合の上フレーム・発言フォーム
default/update.php
発言修正・削除
修正できる件数を10件から変更したい場合は、LIMIT 10の部分の数値を書き換えてください。
「nm=’$snm’ and ip=’”.$_SERVER[‘REMOTE_ADDR’].”‘ and 」までを削除すると、自分以外の発言の修正・削除も可能になります。
$stmt = $db->prepare("SELECT log_idx, hg, pr FROM log WHERE nm='$snm' and ip='".$_SERVER['REMOTE_ADDR']."' and pr<4 ORDER BY log_idx DESC LIMIT 10");