Pbscript

マルチルームチャット、ダイスチャット等のPHPスクリプトを配布

PbsChat3.0β12

      2015/10/09

スマホ対応マルチルームチャット。簡易プロフィール・日記付き。

 PbsChat 3.0β12 [pbschat30b12.zip / 390.2 kB]
更新日:2015年4月3日 / ダウンロード数:2,677
使い方

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");

 - マニュアル

Comment

  1. 園羽霞 より:

    お世話になっております。

    開発者様にご質問がありまして、メッセージを送らせて頂いた次第です。

    参加者表示のページの件ですが、ルームを使用されている時にlast updateの横に「in use」と表示されますが、そこを「in use」ではなくルームを使用しているユーザーの名前を表示させたいのですが、可能でしょうか?

    可能でしたらどこをどう変更すればユーザー名が表示される様になるのかお教え頂けませんでしょうか?

    色々と調べてはみたのですが、どこにも解答が見付からず困って居ります。

    お忙しい所大変ご迷惑御掛けいたしますが、ご返答何卒宜しく御願い致します。

    乱文失礼します。

    • pbscript より:

      index.phpの中に、以下のような表記がありますので、echo ‘In use’;をecho
      $rom.$Jnow;に書き換えれば入室者名が表示されるようになります。

                              if (empty($norom)) {
                                      echo $rom.$Jnow;
                              } else if (!empty($j)) {
                                      echo 'In use';
                              }
      • 園羽霞 より:

        御世話に成って居ります。
        ご返答、誠に有り難うございました。
        無事入室者の名前が表示される様になりました。
        お忙しいところ、何度もお邪魔して申し訳有りませんでした。
        また何かご質問があったらお伺いさせて頂きますので、何卒宜しく御願い致します。
        この度は本当に有り難うございました。

  関連記事

no image
URL転送ツール SJump 1.1 ダウンロード

URLのジャンプ先を確認する画面を表示します。 別のフリーサーバーなどに設置して …

no image
チャットログ変換ツール Lreverse 1.2 ダウンロード

チャットログの日付消し、ログを逆順に並べ替えなどの変換を行います。 ファイル説明 …

no image
オンラインカウンター RomCounter 1.0 ダウンロード

現在何名の人がサイトにアクセスしているか表示します。 5分ごとに自動リロードして …

no image
PbsChat 3.0 Lite

スマホ対応シングルルームチャット。 マルチルームは必要ない、1ルームだけ使いたい …

no image
高機能オンラインカウンター RomCounter Plus 1.1 ダウンロード

現在何名の人がサイトにアクセスしているか表示します。 5分ごとに自動リロードして …