がらくたCGI工房

Japanese Only. Link Free.
Riko作のフリーCGIの配布を行っています。

INDEX

TOP
がらくたCGI工房のトップページです。フリーCGIの説明付き一覧もあります。
Q&A掲示板
ここにあるフリーCGIについての質問を受け付けています。
更新日記
CGI工房用の更新の記録です。
メール
フォームメールです。

フリーCGI

Last updated on 2010/06/08.

フリーCGI:チャット

Contents

ダウンロード&設置方法
しんちゃん
ひみつのしんちゃん
ざ★だんちゃん

↑ このページのTOPへ

ダウンロード&設置方法

しんちゃん

Download:Simple Chat Ver1.02 (Last updated on 2010/06/08 01:32:38.)
Sample:チャット部屋
由来
あまり無用な機能をつけない、シンプルなチャットを作ろうと思った……んだと思います。一応軽くを心掛けました。
特徴
  • ノンフレームでもフレームでも使用できますが、CGIのソースは一つだけです。
  • 文字コードはSJISです。
  • ログファイルのロック機能はかなり強力です(多分)。
機能
  • NonFrame, Frame対応。
  • Frame時自動リロード機能有。
  • Frame時発言復活機能有(サーバーエラーなどで発言が反映されなかった場合に有効)。
  • 参加者表示・ささやかなROMチェック有。
設置の前提条件
  • zipの解凍が必要です。
  • Webサーバ上にjcode.plを用意して下さい。 jcode.plとは、Perl CGI上で日本語を使う為のライブラリです。 すでにご自分のHPにCGIを置いてらっしゃる方は、 大概用意済みかと思われます。 ない方はどっからか拾ってきてサーバ上にFTPしておいて下さい。
設置方法
  1. タイトル行の下のSimpleChat Ver〜をクリックして、 sc.zipをダウンロードします。 ブラウザにもよるでしょうが、 クリックして「ディスクに保存する」を選べば、 ダウンロードできると思います。
  2. sc.zipを解凍します。そうするとsc.cgiとsc.logとuser.scが出来ます。 sc.log及びuser.scは中身は何もないサイズ0のファイルです。
  3. sc.cgiの初期設定を変更します。 絶対に変更する必要のある箇所はソースの頭の方にあります。
    • 一行目の#!/usr/local/bin/perlを、 Webサーバの環境に合わせて変更して下さい。
    • jcode.plをCGIと同じディレクトリに置いていない場合は、 パスを変更して下さい。例えば、
      cgi-bin/jcode.pl
      cgi-bin/sc/sc.cgi
      というように置く場合は、sc.cgiから見て、 jcode.plは一つ上のディレクトリにあるので、 require '../jcode.pl';になります。 まあ大概の方はcgiファイルと同じところに、 jcode.plも置かれるようなので その場合は変更しなくていいです。
    • ログファイル等データファイルを置く場所を、 $logdirで指定します。 CGIと同じディレクトリに置く場合は$logdir=".";のまま。 例えばCGIを置いてあるディレクトリに、 dataというディレクトリを作ってそこにファイルを置くぞ という場合には$logdir="./data"になります。
    • 出口のURLをご自分のHPなどに変更して下さい。 元のURLのままだと「出口」をクリックした時 「がらくたタウン」に出てしまいます。
    絶対に変更する必要があるところは以上です。 その他の「変更した方がいいところ」については 「修正方法」のところで後述します。 さしあたりは最低限変更が必要なところだけ変更してサーバに置き、 稼動確認をすることをお勧めします。
  4. sc.cgiとsc.log(ログファイル)、user.sc(参加者ログファイル)を サーバに置きます。
  5. ファイルのパーミッションを変更します。 ログファイル、参加者ログファイルのパーミッションは666にしてください。 CGIは勿論、755です。
それで多分動くはずです。
修正方法
変更が望ましいところについてはソース中にコメントがあります。
  • チャットのログ行数である$row。
  • 参加者の名前の表示色。背景色に映える色だけにしておいてあげたらいいと思います。
  • リロードの行数指定。
  • 背景色である$bgcolと文字色である$textとリンク色である$linkと既リンク色である$vlink。
  • HTML文のTITLEタグ内のタイトル。
拡張方法&FAQ
裏ログを取得する
通常のログは指定した行数(デフォルト値は30)しか残っていませんが、 そのログファイルとは別に、ログをずっと残しておくファイルを作る 場合の改造方法です。(そのログファイルを「裏ログ」と呼んでいます)
ちなみに、どこまでも延々とログを取り続けますので、 サーバさんのために時々はローカルに保存するなどして、 サーバ側のはサイズ0に戻してやって下さい。
  1. 裏ログファイルの名前を決めます。
    初期設定のところがいいでしょう。 $logfile="$logdir\/sc.log";の次の行あたりに、例えば
    $llogfile="$logdir\/sc.sav";
    など。そして、そのファイルを$logdirに用意してやって下さい。 サイズは最初は0でOK。パーミッションは666です。
  2. ログファイルに書き込む時に裏ログにも書くようにします。
    ロックファイルは$logfileの方とまあ共同で構わないと思いますが、 open,flock,print,flock,closeを裏ログ用にも追加します。
    ログファイルに書き込みをしている部分、 open(LOG, ">$logfile")〜 を探して下さい。
    
    open(LOG, ">$logfile") 
        || &end_html("$logfile open error", $lock_log);
    eval 'flock(LOG, 2);';
    open(LLOG, ">>$llogfile") 
        || &end_html("$llogfile open error", $lock_log);
    eval 'flock(LLOG, 2);';
    print LOG @log; # 配列の中身をファイルに書き出す
    print LLOG "$name\t$mes\t$data\t$color\n"; 
        # @logではないので注意。
    eval 'flock(LOG, 8);';
    close(LOG);
    eval 'flock(LLOG, 8);';
    close(LLOG);
    
これでsc.savファイルに裏ログファイルが保存されているはずです。 尚、裏ログの取得形式は変更が可能です。 例えば、「名前> 発言内容」という形式で保存したい場合は、 print LLOG〜の行を、print LLOG "$name> $mes\n";にして下さい。
リリースノート
1999/09/27
Simple Chat Ver1.0設置。
2000/01/3
Y2K対策をし、Ver1.01としました。
2002/01/3
リロード時間不正指定対策をし、Ver1.02としました。

↑ このページのTOPへ

ひみつのしんちゃん

Download:Secret Simple Chat Ver1.02 (Last updated on 2010/06/08 01:32:37.)
Sample: ないしょのチャット部屋(パスワード=pass)
由来
パスワードを知っている人しか使えないチャットが 欲しいという要望があったので作りました。
特徴
しんちゃんと同じで、ただ入室にパスワードを要求されます。
機能
要パスワードチャットなだけで、後の機能はSimple Chatと同様です。 ただ、名前を入れてない人はそもそも入室できないので、ROMチェック機能が無効。
要パスワードといっても別に暗号化もしてないので、 このチャットが「絶対安全です!」などとは口が裂けても言いません(^^;。 とりあえず安全です、位にしておこう。
設置の前提条件
しんちゃんと同じです。
設置方法
  1. タイトル行の右側のSecretSimpleChat Ver〜をダウンロードします。
  2. ssc.zipを解凍します。そうするとssc.cgiとssc.logとuser.sscができます。 ssc.log及びuser.sscは中身は何もないサイズ0のファイルです。
  3. ssc.cgiの初期設定を変更します。 絶対に変更する必要のある箇所はソースの頭の方にあります。 これもしんちゃんと同じです。
    ssc固有の修正箇所といえば、$passwordです。これをお好みのものに修正してください。
  4. ssc.cgi、ssc.log(ログファイル)、user.ssc(参加者ログファイル)をサーバに置きます。
  5. ファイルのパーミッションを変更します。 ログファイル、参加者ログファイルのパーミッションは666にしてください。 CGIは勿論、755です。
それで多分動くはずです。
修正方法
変更が望ましいところについてはソース中にコメントがあります。 これもしんちゃんと同じです。
拡張方法&FAQ
しんちゃんと同じです。
リリースノート
1999/11/04
Secret Simple Chat Ver1.0設置。
2000/01/03
Y2K対策をし、Ver1.01としました。
2002/01/3
リロード時間不正指定対策をし、Ver1.02としました。

↑ このページのTOPへ

ざ★だんちゃん

Download:zadan.cgi Ver1.0 (Last updated on 2010/06/08 01:32:35.)
Sample: 座談会CGI(管理者用パスワード:password)
由来
対談を記録に残すにはどうしたらいいかと、しんちゃんの改造方法を 訊かれたので、記録に残すための裏ログを取得し、更に今何行目かを カウントするようなCGIを作ってみました。
特徴
しんちゃんと同じですが、デフォルトで裏ログが取得されます。
機能
Simple Chatの機能に追加して、以下の機能があります。
  • 裏ログの取得。取得内容は発言者と発言内容のみ。
  • 対話行数の表示。
  • クリアボタンを管理者が押すと、ログ・裏ログともに空になる。
  • 裏ログのバックアップ機能有。(バックアップ機能を有効にしていれば、ログクリア時それまでの裏ログは年月日時分秒.logというファイル名(例えば、2002年1月3日10時11分12秒であったら20020103101112.log)で、保存される。
設置の前提条件
  • zipの解凍が必要です。
  • Webサーバ上にjcode.plを用意して下さい。 jcode.plとは、Perl CGI上で日本語を使う為のライブラリです。 すでにご自分のHPにCGIを置いてらっしゃる方は、 大概用意済みかと思われます。 ない方はどっからか拾ってきてサーバ上にFTPしておいて下さい。
設置方法
  1. タイトル行の下のzadan.cgi Ver〜をクリックして、 zadan.zipをダウンロードします。
  2. zadan.zipを解凍します。そうするとzadan.cgiとzadan.logと zadan.txtとuser.zdとline.cntが出来ます。 zadan.logとzadan.txtとuser.zdは中身が何もない、サイズ0のファイルです。 line.cntは「0」とだけ書かれたファイルです。
  3. zadan.cgiの初期設定を変更します。 絶対に変更する必要のある箇所はソースの頭の方にあります。
    • 一行目の#!/usr/local/bin/perlを、 Webサーバの環境に合わせて変更して下さい。 ちなみにhi-hoと@niftyでは#!usr/local/bin/perlのままです。
    • jcode.plをCGIと同じディレクトリに置いていない場合は、 パスを変更して下さい。例えば、
      cgi-bin/jcode.pl
      cgi-bin/chabot/chabot.cgi
      というように置く場合は、chabot.cgiから見て、 jcode.plは一つ上のディレクトリにあるので、 require '../jcode.pl';になります。 まあ大概の方はcgiファイルと同じところに、 jcode.plも置かれるようなので (hi-hoの場合は同じところにしか置けないですね)、 その場合は変更しなくていいです。
    • ログファイル等データファイルを置く場所を、 $logdirで指定します。 CGIと同じディレクトリに置く場合は$logdir=".";のまま。 例えばCGIを置いてあるディレクトリに、 dataというディレクトリを作ってそこにファイルを置くぞ という場合には$logdir="./data"になります。
    • 出口のURLである$urlをご自分のHPなどに変更して下さい。 元のURLのままだと「出口」をクリックした時 「がらくたタウン」に出てしまいます。
    • 管理者作業用パスワードである$adminpassを 自分しか知らないものに変更して下さい。
    絶対に変更する必要があるところは以上です。 その他の「変更した方がいいところ」については 「修正方法」のところで後述します。 さしあたりは最低限変更が必要なところだけ変更してサーバに置き、 稼動確認をすることをお勧めします。
  4. zadan.cgiとzadan.log(ログファイル)、zadan.txt(裏ログファイル)、 user.zd(参加者ログファイル)、line.cnt(行数カウントファイル)を サーバに置きます。
  5. ファイルのパーミッションを変更します。CGIは755、その他は666にして下さい。
それで多分動くはずです。
修正方法
変更が望ましいところについてはソース中にコメントがあります。
  • バックアップをとるかとらないかのフラグである$backup。デフォルトでは「バックアップをとる」である"1"になっています。とらなくていいなら"0"にして下さい。
  • チャットのログ行数である$row。
  • 参加者の名前の表示色。背景色に映える色だけにしておいてあげたらいいと思います。
  • リロードの秒数指定。
  • 背景色である$bgcolと文字色である$textとリンク色である$linkと既リンク色である$vlink。
  • 紙面で一行を何字にするかを指定する$cols。全角での文字数になります。
  • 裏ログで、発言者名と発言内容を何で区切るかの$delimiter。"> "とか" "(全角スペース)とかが妥当でしょう。
  • HTML文のTITLEタグ内のタイトル。
拡張方法&FAQ
裏ログで、発言者と発言内容以外に、発言時間も取得する
「# 発言があった場合追加」のところで、
print LLOG "$name$delimiter$mes\n";
を、例えば、
print LLOG "$name$delimiter$mes($date)\n";
などとします。
リリースノート
2002/01/3
設置。

↑ このページのTOPへ