[トップ] [掲示板] [F.A.Q.] [コラム] [ひとりごと] [利用規約] [履歴] | |
しりとり |
文字どおり「しりとり」ゲームをするCGI。
まず、下のファイルをダウンロードして、解凍します。解凍すると、"shiri.cgi"と"kabalib.pl"の2つのテキスト・ファイルができます。
※kabalib.plはVer.1.20以降を使ってください。
cgi-lib.plを入手します。
http://cgi-lib.berkeley.edu/
jcode.plを入手します。(ホームページ・サービスによってはPerlと一緒にインストールしてある場合があるようです)
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/
"shiri.cgi"をテキスト・エディタで編集します。
(※"shiri.cgi"はEUCで書いてありますので、EUCが扱えるエディタでないと日本語部分が読めません。)
最低限、次の個所を変更する必要があります。
ftpソフトなどでサーバーのCGI用ディレクトリにアップロードしましょう。アップロードするとき、.cgiと.plはテキストモードで、.gifはバイナリモードで転送するのを忘れないでください。仮にcgi-bin/にアップロードしたら、次のようにディレクトリとパーミッションを設定します。
※kabalib.plはshiri/の下でもOKです。
※jcode.plとcgi-lib.plはCGIスクリプトではしょっちゅう参照される定番なので、lib/ディレクトリとして独立させておくと使いまわせて便利です。
cgi-bin/ ├-- lib/ | ├-- jcode.pl | ├-- cgi-lib.pl | └-- kabalib.pl └-- shiri (755)/ ├-- data (777)/ └-- shiri.cgi (755)
設定が終わったら、ブラウザからCGIを設置したURLを開いてみましょう。上の例のようなディレクトリ構成なら、次のようなURLになります。
http://xxx.yyy.zzz/cgi-bin/shiri/shiri.cgi
"shiri.cgi"の「設定、適当に変更してください」〜「設定はここまで」の間を適当に変更すると、見た目や動作をカスタマイズできます。
画像ファイルを使う場合は.gifファイルを指定して、先頭の「#」を消してください。指定しない場合は、壁紙はなし、その他はテキストで代替します。
#画像ファイル指定(不要ならコメントアウトか''にして) #$iBg1 = 'bg1.gif'; #ノーマル状態の壁紙。 #$iBg2 = 'bg2.gif'; #警告の壁紙。 #$iAr1 = 'arrow1.gif'; #ノーマル状態の矢印(上向き)画像。 #$iAr2 = 'arrow2.gif'; #過去ログ表示の矢印(右向き)画像。 #$iTitle = 'title.gif'; #タイトルのロゴ。
色も変更できます。壁紙を使わない場合は、サイトの雰囲気にマッチした背景色を指定しましょう。壁紙を使う場合には、その壁紙に似た背景色を指定しておくと、画像がブラウザに送られなかったとき(例えばブラウザで画像をダウンロードしない設定にしているなど)でも、見た目のイメージをいくらか保持できます。
#色指定 $cBg1 = '#FFFFFF'; #ノーマル状態の背景色(白) $cBg2 = '#FFCC66'; #警告の背景色(オレンジ) $cTx = '#006400'; #文字色 $cLi = '#8b0000'; #リンク文字色 $cVl = '#1e90ff'; #訪問済みリンク文字色
投稿できる単語(word)の数と、単語の文字数が変更できます。上限を超すと、最後に投稿された単語を先頭にしてまた1個目から「しりとり」が始まります。
"shiri.cgi"の「設定、適当に変更してください」〜「設定はここまで」の間を適当に変更して、イタズラの被害を少しは食い止めることができます。まあ、気休めと思ってください。
データ・ファイルを保存するディレクトリは、初期値では"data"になっていますが、このディレクトリはパーミッション777のセキュリティー的に弱い部分なので、他の人に推測されにくい名前にすることをお勧めします。何かとんでもない名前を考えて一人で楽しんではどうでしょうか?
データ・ファイル用ディレクトリ名を変更するには、"shiri.cgi"の$dirの部分と、実際のディレクトリ名を変更してください。下は、"data"を"monooki"に変更した例です。
[shiri.cgiファイル]
[ディレクトリ構成]
cgi-bin/ ├-- lib/ | ├-- jcode.pl | ├-- cgi-lib.pl | └-- kabalib.pl └-- shiri (755)/ ├-- monooki (777)/ └-- shiri.cgi (755)
もしイヤな投稿を繰り返す人がいたら、その人のIPアドレスだけ投稿を受け付けないようにすることができます。と言っても、ダイヤルアップ接続の場合は、接続の度にIPアドレスが変わるのでピン・ポイントで指定するのは無理です。そういう場合はIPアドレス「xxx.yyy.zzz.nnn」のうち、毎回共通する「xxx.yyy」とか「xxx.yyy.zzz」だけを指定します。同じプロバイダ・同じ地域の人は一律に投稿できなくなると思いますが、不都合が発生する確率は高くはないと思います。
やり方は、"shiri.cgi"ファイルを下のように設定しておいて、イヤな投稿を繰り返す人がいたらデータ・ファイルを調べます。あとは、拒否したいIPアドレスを1行に1個づつ書いた"adress184"ファイルを、"shiri.cgi"ファイルと同じディレクトリに置くだけです。
[shiri.cgiファイル]
[adress184ファイルの例]
123.456.789 111.222.333.444
※.htaccessが使える環境なら、同じ事を.htaccessファイルを編集することで実現できます。
投稿して欲しくないwordを予め受け付けないように設定できます。@words184に片仮名か平仮名で登録するだけです。
#不適切ワード # 片仮名か平仮名のどちらかで書いておけば、そのワードは受け付けません。 # あまり多いとレスポンスが遅くなるかも、と思います。 @words184 = ( 'ばか', 'しね' );
幸いにしてサイトが流行れば、うっかりした書き込みもあると思います。(このサイトは流行ってないので安心ですが。)そういう投稿はやっぱり管理者が削除するしかないので、"shiri.cgi"にはメンテナンス・モードがあります。メンテナンス・モードを活用するには、"shiri.cgi"の「設定、適当に変更してください」〜「設定はここまで」の間にちょっとした設定をしておきます。
メンテナンス・モードに入るには、しりとり画面の[メンテナンス]をクリックします。
誰でも投稿を削除できては困るのでパスワードを付けます。パスワードの初期値"0123"は必ず変更しておきましょう。
メンテナンス・モードにログインすると、テンポラリのセッションIDがブラウザ側のクッキーに送られ、あとの操作が管理されますが、ブラウザがクッキーを受け付けない設定になっている場合には、正規にログインしたのかどうか判断できません。そういう場合には$setdelkeyに削除キーを設定しておいてください。$setdelkeyがあると、"shiri.cgi"は削除操作の度に「削除キー」を聞いてきます。
$setpass = '0123'; #メンテナンス・モードのログイン・パスワード $setdelkey = ''; #ワードの削除キー、クッキーが有効なら不要。
パスワードだけでは心配な場合は、自分のIPアドレスからしかメンテナンスできないように設定できます。$sethostに「111.222.333.444」のようにIPアドレスを記入してください。もし、自分のIPアドレスが固定でないときは、「111.222.333」のように決まっている桁だけ書いておけば大丈夫です。初期値".*"は何でもOKの意味です。
$sethost = '.*'; #ホスト名にこの文字列を含まないとメンテナンスできない。
CGIが出したエラーメッセージはログ・ファイルに記録できます。禁止したIPアドレスからの書き込みがあれば、その情報も記録されます。たまにはログをチェックしてちゃんと動いているか確認するとベターです。ログ・ファイルはEUCで記録されますので、PCに転送して中を見る時には注意してください。
何でネットで「しりとり」かっていうと、i-modeが大流行と聞いたので画面が小さくても楽しめる簡単なコンテンツを作りたいなー、と思ったからでした。そこで、勇んでフリー・ホームページ・スペースと契約したけれど、サービスの制約上どうしてもケータイ向けCGIは設置できません。お金を出して広告が入らないホームページ・サービスと契約するか、レンタル・サーバーを借りれば良いのですが、趣味でそこまでできないので、結局「しりとり」はPCのブラウザ向け仕様となりました。
でも考えてみれば、自分はケータイを持ってないので、「ケータイしりとり」を実現しても参加はできなかったわけです。それも寂しいので、まあ良かったのかも知れません。でも気がつけば、どっちを向いてもみなさんケータイを持ってらっしゃる。やっぱケータイ向けサイトをつくってみたいなー。
2003/1/28 | Ver.1.02p | kabalib.plの重大なバグを修正。(Ver.1.20) |