ホームページに、毎回ランダムにことわざや格言などを表示するスクリプトです。SSIで動作します。
以下のメッセージはFortuneによって出力されています。リロードすると変わります。
山里は冬ぞさびしさまさりける 人めも草もかれぬと思へば 源宗于朝臣
Fortuneのディレクトリを、SSIを実行できるディレクトリに置きます。Fortuneディレクトリ内のディレクトリ構成とファイル属性は以下のようになります(ファイル属性はプロバイダなどによって異なることがあります)。
ファイル名 属性 説明
fortune/ 755 Fortuneディレクトリ
fortune.pl 701 Fortune本体
fortune.dat 644 データファイル
.htaccess 600 アクセス設定ファイル(なくてもよい)
.htaccessファイルは直接データファイルなどにアクセスされるのを防ぐために置きます。不要という場合はなくてもいいです。
たとえば、CGIが実行できるディレクトリがpublic_html/cgi-binだとすると、Fortuneディレクトリは次のように置きます。
ファイル名 説明
public_html/ ディレクトリ
cgi-bin/ ディレクトリ
fortune/ Fortuneディレクトリ
fortune.plをテキストエディタで開き、以下の行を設定します。
#!/usr/bin/perl
1行目はPerlのある場所です。プロバイダごとに異なるので、プロバイダの説明に従って書き換えます。以下のケースである場合がほとんどです。
# データファイル名(絶対パスで書くのが簡単) my $data_file='/home/uttsu/public_html/cgibin/fortune/fortune.dat';
データファイルのある場所を記述します。SSIは呼び出し元からのパスで書く必要があるみたいなので、上記のように絶対パスで書くと失敗がなくて簡単です。
# メッセージを毎回変える: 0 日毎に変える: 1 my $is_daily = 1;
同じ日の間は同じメッセージを表示する場合は1、毎回変える場合は0にします。
HTMLファイルの中で、メッセージを表示したい場所に、以下のように記述します。
<!--#exec cmd="cgi-bin/fortune/fortune.pl" -->
"cgi-bin/fortune/fortune.pl"の個所は、設置したディレクトリに合わせてください。
データファイル(fortune.dat)をテキストエディタで開き、編集することによって、表示するメッセージを変更できます。次のようなデータ形式になっています。
※\nは、Windowsなどの環境では ¥n となります(半角文字)。
HTMLのタグなどを入れた場合は、表示されたときにそのタグが有効になります。また、読み込んだメッセージをJavaScriptなどで操作しても面白いと思います。