CGIのダウンロード

cgiスクリプトA.A.P.

状況に応じてカスタマイズが可能な第3者も参加できるアンケートフォーム

Index

この掲示板の特徴とサンプル

「An Attractive Proposition」の省略形です。略して「A.A.P.」にしています。 某アーティストが言っているヤツと掛けています。 ご意見板や要望掲示板として利用ができます。 管理人のみが記事を提案する事や、第3者が意見を出す事も可能です。 意見を投稿してそれを見ている人達が投票する…というような感じです。 用途は、アンケート記録、要望掲示板として、サイト評価掲示板として応用が効きます。

  • 一般
    • 見やすくクールなインターフェース
    • HTMLタグはセキュリティ上使えません。
    • 投稿者は投稿・提案した記事を削除できます。
    • 二重投稿防止機能
    • ショートカットキーによるキーボード派な人のためにも最適
    • 書き込み、投票した項目はハイライトになります
    • 掃き出すソースにも重視し、サーバに負担をかけない設計
    • Javascriptは使用していません。
  • 管理者ができる設定
    • 記事の削除・編集
    • マルチ投票・シングル投票モード選択可能
    • プロキシサーバからのアクセスの拒否の設定
    • 排他制御(連続投稿・連続投票の防止)
    • 前の人の書き込みから一定時間書き込みできないように設定可能

サンプルCGIを御覧になりたい方はこちら(別ウィンドウが開きます)。 投票は自由にできます。 尚、管理用モードは「1234」になっています。削除、書き込みはできません。 閲覧のみとなっております。機能をお試ししたい場合には、ダウンロードして使ってみて下さい。

ダウンロード

このCGIはWindows用/Macintosh用のエディタで編集している方用にShift-JISで表示するように記述されています。 UnixやLinux用ではEUCで表示するように制作されています。 最近では自動的に文字コード変換してくれると思いますが、一応対策です。

Windows Macintosh Unix/Linux

各種OS、お使いの環境によってダウンロードして下さい。 WindowsでもEUC/LFが良い場合にはUnix/Linux版をダウンロードしてください。

ダウンロード後の設定方法

ダウンロード後は次のような設定して下さい。

#タイトル
$title = 'A.A.P.' ;
※画像を使わない場合にはここのタイトルが文字列として表示されます。

#タイトルに画像を使う場合のimgタグ
$image_title =  '<img src="img/title.gif" width="295"
         height="24" alt="An Attractive Proposition" />';
※画像を使わない場合には、中身を空にしてください。

#このファイルの名前
$thisfile = 'ques.cgi' ;

#ログファイル
$logfile  = 'ques.log' ;
※ログファイルを見られたくない場合は複雑な名前にし、ファイル名を手動で改変してください。

#トップページ
$home = '../index.html' ;

#1ページ中に表示される最大記事数
$limitview = 10 ;
※ログファイルを見られたくない場合は複雑な名前にし、ファイル名を手動で改変してください。

#投稿記事最大文字数(0は無制限)
$maxbyte = 255 ;

#管理人のみが行うアンケート(第三者は答えるだけ)(0:そうしない 1:そうする)
$admin_only = 1 ;
※「0」にすると管理者のみが管理者モードで投票項目を作成できます。

#マルチ投票(複数の記事に投票が可能)(0:マルチ投票オフ, 1:マルチ投票オン)
$multipost = 1 ;
※「0」:グループボタン(単一投票)、「1」:チェックボタン(複数投票可)

#連続投稿(0:許可, 1:同一IPから連続投稿を拒否, 2:一定時間書き込み不可)
$sequence_post = 0 ;
※「1」:連続記事投稿において同じ人が連続で投稿するのを禁止します。
「2」:すべての投票者に対し投票後は一定時間確保 - 1を推奨

#上記の「連続投稿」で2を選んだ人で、何秒間隔を空けるか?
$wait = 180 ;
※上記の設定で「2」を選んだ場合に何秒待機させるかを指定して下さい。

#連続投票(0:許可, 1:同一IPから連続投稿を拒否)
$sequence_vote = 1 ;
※連続投票を許可するかどうか?「投稿」ではなく「投票」です。

#管理用パスワード
$admin_pass = '1234' ;
※管理者用のパスワードです。自分しか分からないようなものに変更して下さい。

#テーブルのヘッダ情報
#(左から順番に文字列を記述)
($strid, $strno, $strcomment, $strcount, $strshare)
    = ('ID', '順位', '提案記事', '投票数', 'シェア') ;
※色々な用途を考えてテーブルの見出しの文字列の設定ができます。
用途に応じて「提案記事」を「要望内容」などに変えて下さい。

#プロキシサーバからのアクセスを許可するか?(0:許可しない, 1:許可する)
$allow_proxy = 1 ;
※プロキシサーバからのアクセス(書き込み)を拒否する場合には「0」にして下さい。

#ルールなど(利用規約)をリストで記述(カンマで区切って下さい。)
@rule = ('当サイトで良かったコンテンツを投票してください。',
         '最低限のマナーは守って書き込みをして下さい。',
         '自分本位な提案・要望はせず、建設的な記事を投稿してください。') ;
※CGIの上部に表示される簡単なルールや規約を記述して起きます。
						

上記のような設定で利用して下さい。

パーミッションの設定方法

パーミッションの設定はサーバにアップロード後、以下のようにしてください。 また、サーバによっては「cgi-bin」フォルダからしか実行できない場合があるのでご注意下さい。

このように設定が完了したら取りあえず"http://***/aap/aap.cgi"とURL欄に打ち込んでみて下さい。 エラーが出るようでしたら、先程の『ダウンロード後の設定方法』にて第1行目が"#!/usr/bin/perl"の可能性が考えられます。

  • aap(755)
    • aap.cgi(755) - メインプログラム
    • jcode.pl(644) - 日本語データ解析用スクリプト
    • aap.log(666) - 書き込み内容保管用ファイル
    • aap.css(644) - CGIのデザイン定義(スタイルシート)
    • img(755)
      • title.gif(644) - タイトル用初期画像
      • bar.gif(644) - シェア率表示用バー
      • grad.gif(644) - ボタンの背景用画像
      • hilight1.gif(644) - 投票した時のハイライト画像
      • hilight2.gif(644) - 新規投稿記事時のハイライト画像
      • create.gif/delete.gif/password.gif/error.gif/additem.gif(644)

基本的にアップロード後に変更するファイルは赤字で示した"aap.cgi"と"aap.log"だけでOKです。

ブラウザでの動作確認

ブラウザでの動作確認なのですが、最適な環境は「Internet Explorer 4.0」以上、SVGA(800×600)以上の解像度で最適化されます。 また、「Opera7.0」「Netscaper7.0」で動作確認済みです。レイアウトもそのまま再現されます。

悪戯された場合の対処方法

悪戯防止策として匿名性が高くなってしまうプロキシサーバからの記事書き込みを禁止する事をお勧めします。 プロキシサーバでもこのCGIはIP情報がバックで表示されている場合は書き込みを許可するようにしています。 プロキシサーバからの書き込みを禁止するのには、CGIファイルの、

#プロキシサーバからのアクセスを許可するか?(0:許可しない, 1:許可する)
$allow_proxy = 0 ;

ここの値を0にして下さい。プロキシサーバからの書き込みを禁止すれば悪戯があったとしても減ります。 それでも悪戯が起きるようであれば、管理用モードに入って、書き込みした人のホスト名とIP(IPはホスト名上にカーソルを合わせると出てきます。)と時間、そして書き込んだ内容を表わすURLを元にすぐにプロバイダに通告してください。 例えば、"****.bbtec.net"となっていたら、"YahooBB"へ連絡してください。 その際に証拠が分かるように、すぐにプロバイダへ連絡する事が大切です。

改変・利用に関する諸事項
デザインなどの改変に関しまして

デザインの改造などを行う時には、付属の"aap.css"を御覧になって下さい。 基本的にはデザインはほとんどスタイルシートで記述されています。 スタイルシートは設計指針を立てて制作したものではなく、ツキハギ的な所がありますのでご注意下さい。 改変による不都合等の責任は当方は一切追いかねますので予めご了承下さい。 一応どの部分のデザインかは記述してあります。 スタイルシートに関する知識がある方は改変してみて下さい。

再配布をされる方への注意点

CGIスクリプトの表示部分から"http://www.w-frontier.com/"のリンクは必ず残してください。 また原則としてフリーウェアとしての再配布のみ認めます。

改変・改造したCGIを自分のウェブサイト上で再配布する際にはメールにてご一報よろしくお願いします。

プロバイダによる注意点

このCGIはサーバへの高速化と低負担化のためにファイルの排他制御にflock関数を使用しています。 大手プロバイダではflock関数が使えない所もありますので、事前に調べておくと良いでしょう。 また、flock関数が使えない場合でもCGIは動きますが排他制御が行われなくなるので、 ファイルの書き込み中に万が一エラーが起きた場合にはデータが消えてしまう場合がありますのでご注意下さい。 現段階で私が知る限りでのflock関数の使用が制限されているプロバイダは以下です。

他のプロバイダでも「flock」が使えない所を御存知でしたら教えて頂けると助かります。