このスクリプトはPerl5以上の環境で動作します。
注意点:
 このファイルセットはHAL様作「PatiPati」をベースに、とわが部分的な機能追加を行なったものです。
 このファイルセットを使用した上での質問等は全てとわ宛にお願いします。
 オリジナル配布元へ改造版の質問等なさらないようお願いいたします。

改変部分履歴:
2008/04/19 Ver4.4 +Towa (phase6)
本家GNBバージョンアップ(4.3→4.4)内容反映。

phase6
全てのお礼ファイル実例(thanks.html〜thanks5.html)を英数半角スパム対策版に変更。
PatiPati+で実践可能なとことんスパム対策」ページを追加。

既存ユーザーの方々について。既にVer4.0以降を導入済みの方は
「index.cgi」「sub.pl」ファイルを最新のものに差し替えてご利用ください。
お礼ファイルに付いては、ソースを参考にvalue=の後の文字列を英数半角で記述してください。
例:value="要返事" → value="RES"、など。
2008/03/12 Ver4.3 +Towa (phase5)
本家GNBバージョンアップ(4.2→4.3)内容反映。

phase5
英数半角のみのスパム対策で、メインフォーム以外に入力があったとき無効となっていた問題を解決。
NGワードに「http」を指定してもスルーしてくるスパムをブロックする機能を追加。

既存ユーザーの方々について。既にVer4.0以降を導入済みの方は
「index.cgi」「sub.pl」ファイルを最新のものに差し替えてご利用ください。
また、「preset.cgi」の英数半角スパム用設定「$delspam」が変更になっています。
[ 旧:0=有効 1=無効 が 新:0=無効 1=有効 ]となります。
同じく「preset.cgi」に新規設定項目が追加されました。「$kickurl」です。
新規辞書よりコピーしてご利用ください。
エラーメッセージを追記しました。
CGIを独自にカスタマイズしてない方は「error.html」も差し替えてください。
2007/06/02 Ver4.2 +Towa (phase4)
本家GNBバージョンアップ(4.1→4.2)内容反映。

既存ユーザーの方々について。既にVer4.0以降を導入済みの方は
「sub.pl」ファイルを最新のものに差し替えてご利用ください。
書き替え等は特にありません。
2007/03/12 Ver4.1 +Towa (phase4)
本家GNBバージョンアップ(4.0→4.1)内容反映。

既存ユーザーの方々について。既にVer4.0 を導入済みの方は
「view.cgi」「sub.pl」ファイルを最新のものに差し替えてご利用ください。
書き替え等は特にありません。
2007/03/10 Ver4.0 +Towa (phase4)
本家GNBバージョンアップ(3.2→4.0)内容取り込み。
なお、「ログファイル拡張子を自由に変更できるように修正。」については
phase2にて出力ファイルを.logから.cgiに変更済みのため今回は反映しておりません。

既存ユーザーの方々について。
変更点については「view.cgi」「sub.pl」ファイルを最新のものに差し替えた上で
「preset.cgi」に新規設定項目($view_pre)を追記してバージョンアップしてください。
2006/11/24 Ver3.2 +Towa (phase4)
本家GNBバージョンアップ(3.1→3.2)内容取り込み。

既存ユーザーの方々について。
変更点については「view.cgi」ファイルを最新のものに差し替えてください。
2006/11/2 Ver3.1 +Towa (phase4)
本家GNBバージョンアップ(3.0→3.1)内容取り込み。
niftyなどのサーバー用モード、$shell_use = 1; に設定した時のビュー画面のバグ修正。
NGワード送信後のメッセージ見せかけ機能実装。
NGワードの日本語のNGワードは送られてしまうバグ修正。

既存ユーザーの方々について。
NGワード送信後のメッセージ見せかけ機能については「preset.cgi」に「$ng_ck_msg」の記述を追加することで実現できます。
(書式については最新preset.cgi内を参照してください)
その他の変更点については「index.cgi」「view.cgi」「sub.pl」ファイルを最新のものに差し替えてください。
2006/10/25 Ver3.0 +Towa (phase4)
スパム対策版。
preset.cgiのNGワードにデフォルトでスパム投稿対策ワードをセット。
英数半角のみの投稿制限機能追加。設定で許可することも出来ます。
禁止ワードについては「preset.cgi」のNGワード設定部分を参照してください。

既存ユーザーの方々について。
英数半角のみの投稿の遮断については「preset.cgi」の「$delspam」にて設定変更が可能です。
設定済みのpreset.cgiに「$delspam」項目を追加するだけでスイッチ機能が利用できます。
英数半角のみの投稿制限機能使用に際しては「index.cgi」を最新のものに変更してください。
(ファイル名を変えている場合はindex.cgiに相当するファイルの2行目以降全てを新規スクリプト内容と差し替えて使用してください)
2006/08/31 Ver3.0 +Towa (phase3)
本家GNBサポート掲示板バグフィックス取り込み。
(IE7環境でログ画面が全て左フレーム内に表示=view.cgiを新規ファイルと差し替えてください)
(NGワードが反映されない=index.cgi を新規ファイルと差し替えてください)
readme.html内容変更部分の反映(フォームの追加方法、追記部分)
2006/07/03 Ver3.0 +Towa (phase2)
「ログディレクトリ名変更推奨」の注意書き。
設置方法変更。ログディレクトリとロックディレクトリ、blist.txt、lock.txt、index.htmlを自動生成に。
ログファイルの出力形式を.logから.cgiに変更。
拍手音付きサンプルhtmlと拍手音素材同梱。
前回からの変更ファイルは「index.cgi」「view.cgi」「sub.pl」
「preset.cgi」内設定項目「$Gindex 」追加。「view2.cgi」ファイル追加。
2006/03/10 Ver3.0 +Towa
メッセージ送信時に、送信内容を送信後画面に表示。
拍手回数制限無し設定、文字数制限無し設定を送信画面に反映(共に設定はpreset.cgi内)
変更ファイルは「index.cgi」「thanks.html」「thanks2.html」となっています。
メモ ・お礼画面を増やす時は「thanks.html」「thanks2.html」等のサンプルをコピーして作ってください。
・お礼画面デザインは「style.css」で配色等変更可能です。
・CGIファイルに改造を加えたときは必ずEUCにて保存してください。   (以上、オリジナルのreadme.htmlに追記)
改定履歴:オリジナル版(ver3.1送信メッセージ表示については改造版で実装済みのため割愛)
2008/03/31 Ver4.4
コメントをメール送信した場合に文字変換が起こったままのバグ(>→>)修正。
Ver4.xをご利用の方はindex.cgi、sub.plを差し替えてご利用ください。
2007/08/15 Ver4.3
コメントなしpatiの際のメッセージ確認欄に「メッセージはありません」を表示しないようにしました。
また、サブ項目にクッキーが利用できるようになりました。
Ver4.xをご利用の方はindex.cgi、preset.cgi、また各デザインファイルを差し替えてご利用ください。
(クッキーを利用しない場合はデザインファイルは差し替えなくても問題ありません。)
2007/05/31 Ver4.2
最大保存ログ数が無効になってしまうバグ修正。Ver4.xをご利用の方はsub.plを差し替えるだけでOKです。
2007/03/12 Ver4.1
ビュー画面の初期表示を月表示にした場合、日表示が見られないバグ修正。
Ver4.0をお使いの方はview.cgiとsub.plを差し替えてご利用ください。
2007/02/28 Ver4.0
ビュー画面の初期表示を月表示/日表示の選択(初期設定で)
拍手のなかった日は空ログ生成しないように修正。
ログファイル拡張子を自由に変更できるように修正。(デフォルトを.cgiにしました。)
Ver3.xをお使いの方はindex.cgi、preset.cgi、view.cgi、sub.cgi を差し替えてください。
ログファイルを継続利用したい場合、現行ログファイルの拡張子を変更するか、preset.cgiのログファイル拡張子をご変更ください。
半角文字の文字化けをとっくに修正していたのですが書き忘れていました。多分Ver3.1あたりから直っています。
2006/11/18 Ver3.2
管理画面ログアウト機能追加。view.cgi、index.cgiを差し替えてご利用ください。
2006/11/02 Ver3.1
niftyなどのサーバー用モード、$shell_use = 1; に設定した時のビュー画面のバグ修正。
NGワード送信後のメッセージ見せかけ機能実装。
NGワードの日本語のNGワードは送られてしまうバグ修正。
2006/01/23 Ver3.0
文字化けを防ぐためにスクリプト本体をEUCコードに変更。前バージョンまでのログファイルは流用できません。
(半角カナ文字+半角英数字のみのメッセージ(例:ハンカクモジAB69)は今のところ文字化けします。)
(デザインファイルはSJISのままなのでlast.html以外は流用可能です。)
月ビュー画面のグラフ化・ビュー画面をフレームにして見やすくなるよう改良しました。
月ビューから日ビューへのリンクを作成しました。
ブラックリスト入りしたコメントを非表示に。白文字での表示なので、反転でコメントを見ることもできます。
連続拍手後の制限時間を設定できるようになりました。(クッキー制御)
2005/03/10 Ver2.1
初期設定で設定された連続拍手数や文字制限数をお礼ページに反映できるようにしました。
2005/03/07 Ver2.0
ブラックリスト機能のIP表示を暗号化。生IPは直接ファイルを開かないと見ることができないように変更しました。
2005/02/28 Ver1.6
ファイルロックをflock関数に変更。
2005/02/02 Ver 1.5
複数管理人へメールが送られるようになりました。
ビュー画面をワンクリックで他の日を見れるように設定・月ビュー表示追加。
Ver 1.3以上をお使いの方はログファイルなどははそのままお使い頂けます。
2004/12/21 Ver 1.4
連続拍手回数以上の表示を固定デザインファイルに変更。
また、密かにブラックリスト表示ページでリスト解除ができなかったバグ修正。
view.cgiのシェル呼び出し禁止サーバー(niftyさんなど)対応。過去ログファイルが見れない方は、初期設定で $shell_use = 1; にしてみてください。 ただし、このモードは過去ログがうまく削除できないかも知れません。(ある程度は削除できますが、途中で保存ログ数を変更などした時には、過去ログを手動で削除願います。通常に設置しているぶんには自動削除できるはずです。)
Ver1.3以上をお使いの方は、ログファイルはそのままお使い頂けます。各CGIファイルとlast.htmlファイルを差し替えてお使いください。
2004/12/07 Ver 1.3
IP表示はどうも評判が悪いようなので、ブラックリスト機能に変更。
2004/12/07 Ver 1.2
管理者画面でコメントに対するIP表示をするかしないかの設定を追加。
メッセージ受信時に改行がされないバグ修正。
拍手設定数以上に拍手できてしまうバグ修正。
2004/09/28 Ver 1.1
お礼ページ表示方法に「ランダムにせずに、さらに繰り返し表示もしない」モードを追加
コメント以外にもフォームを反映できるようになりました。詳しくは下記の「フォームの追加方法」をご覧下さい。
2004/07/30 配布開始
いわゆるweb拍手と似たようなモノです。コメントのメール送信機能付。

システム仕様&注意事項:
PatiPatiシステムのログ取得は、その日最初の拍手があった時、もしくは管理画面が表示された時に行われます。
ですので、拍手がなく、かつ管理画面も呼び出されなかった日はログファイルが生成されません。
日にちごとにログファイルを生成しているのでこのような仕様になっております。

各ファイルならびにフォルダと[パーミッション]
readme.html(説明ファイル=このファイルです)
test.html(ファーストページへの設置サンプルです)
patipati(フォルダ)
├─img(フォルダ)
├─lock(フォルダ) [777] (初回動作時に自動生成) │
├─logs(フォルダ) [777](初回動作時に自動生成)
│ └─blist.txt [666](初回動作時に自動生成) │ └─index.html (初回動作時に自動生成)
│ ├─index.cgi [755]
├─preset.cgi [755]
├─view.cgi [755] ├─view2.cgi [755](過去互換用。.logタイプのログファイルを表示できます。新規設置の際は不要です。)
├─style.css
├─error.html
├─last.html
├─thanks.html
├─thanks2.html ├─index.html (ダミーファイル)
├─jcode.pl
└─sub.pl
index.cgiにアクセスすることでプログラムが機能します。(index.cgiをリネームしているときはそのCGI) 解析画面はview.cgiにアクセスしてご覧ください。 既にver3以降のPatiPati導入済みの方はview2.cgiで旧形式ログの解析が可能です。
パーミッションの指定のないものはデフォルトのまま(644)で構いません。

cgiの設定
index.cgi, view.cgiをメモ帳などで開き、1行目を変更します。
 #!/usr/bin/perl    
サーバで定められたパールへのパス
preset.cgiをメモ帳などで開き、各初期設定を変更します。
(設定の仕方はpreset.cgi内のコメントを参照してください。) 設定変更後は必ず文字コードEUCで保存してください。→EUC形式保存可能エディタ

お礼画面htmlの設定
thanks.htmlなど、お礼画面を作成し、初期設定ファイルでお礼ファイル名を設定します。
お礼画面を作成する際、<!-- --> で囲まれた部分はソースから削除しないようにお願いします。

thanks.html=スリム表示、thanks2.html=入力フォーム大きめ
thanks3.html=画像貼り付け例、thanks4.html=拍手音再生例となっております。

フォームの追加方法
thanks.htmlなどの作成したお礼画面のフォーム内に、ラジオボタンやチェックボックスを作成します。
その時、フォームオブジェクトの名前を、必ず「sub○」(○は1以上の任意の整数)として半角でご指定ください。
preset.cgiで追加ボックスをいくつまで作るか設定できます。
(初期設定は5つです。厳密に数を合わせることは必要ありませんが、ここで設定した以上の数のオブジェクトは反映されません)
(例) sub1〜sub8まで使用したい場合は、$sub_su の設定を8以上にしてください。(あまり大きくしすぎるとサーバ負荷の原因となります。)
解析画面では、コメント後に( )で囲まれてvalue値のみが表示されます。
なお、追加ボックスは改行が反映されません。
<追加項目設定例(ソースコード)>
1) 「名前」入力欄を追加したい
お名前:<input name="sub1" type="text" id="sub1" size="15">
 →お名前:
2) 「返信要・不要」など、ラジオボタンを追加したい
<input type="radio" name="sub1" value="要">要 <input type= "radio" name="sub1" value="不要">不要
 → 要  不要
3) 「返信不要」のチェックボックスを追加したい
<input name="sub1" type="checkbox" id="sub1" value="返信不要">返信不要
 → 返信不要
4) 簡易アンケートを追加したい
このサイトで好きなものは?:
< select name="sub1" id="sub1">
< option>テキスト</option><option>コミック</option><option>日記</option><option>エッセイ</option>
</select>
 →このサイトで好きなものは?:
5) 画面には表示させずに、隠し項目を追加したい
<input type="hidden" name="sub1" value="ページ1からの拍手">
 →  (表示されません)
フォームのクッキー対応方法
thanks.htmlなどの作成したお礼画面のフォーム内のサブ項目にクッキーを対応させることができます。
value値に「<!--フォーム名-->」を書くことで、クッキーを読み出すことができます。
下記に例を示しますので、ご参考ください。
また、ラジオボタンやチェックボックス、セレクトボックスなどは基本的にクッキー対応できません。
<項目設定例(ソースコード)>
1) 「名前」入力欄をsub1で設定し、クッキー対応させたい
お名前:<input name="sub1" type="text" id="sub1" size="15" value="<!--sub1-->">