カウンタプログラムをSSIで使う

SSI用カウンタプログラム

CGIカウンタプログラムから不要なタグ部分を削って以下のように修正します。変更点は太字で示してあります。

SSI用カウンタプログラム(ssi_counter.cgi)

#!/usr/local/bin/perl

# ファイルcountdataをファイルハンドルCOUNTでオープン
# オープンできないときにはエラーメッセージを表示して強制終了
open (COUNT, "+<countdata") || die "File 'countdata' Open Error.";

# ファイルのロック
flock (COUNT,2);

# 変数$counterにファイルハンドルCOUNTから1行読み込み
$counter = <COUNT>;

# カウントアップ
$counter = $counter + 1;

# ファイルポインタを先頭に戻す
seek (COUNT, 0, 0);

# ファイルハンドルCOUNTに出力(書き込み)
print COUNT $counter;

# ファイルのロック解除
flock (COUNT,8);

# ファイルのクローズ
close (COUNT);

print "Content-type: text/html\n\n"; # HTML出力の際のお約束

print $counter; # カウンタ出力部分。タグで修飾しても良い。

SSIを利用するWebページ(index.shtml)

  1. アクセスカウンタを入れるWebページをメモ帳で編集します。
  2. アクセスカウンタを入れる箇所に以下のタグを挿入します。
    <!--#exec cgi="ssi_counter.cgi"-->

    SSI用カウンタプログラムは数字しか表示しないので、必要な文章などを周りに追加した方が良いです。

  3. ファイル拡張子を「.shtml」にして保存します。この際、ファイル名全体を「"」で囲んで、「.txt」の拡張子がつかないようにしてください。

アップロード&動作テスト

  1. FFFTPを使用して、SSI用カウンタプログラム、カウント用データファイル、Webページを同一のフォルダに入れてアップロードします。

    「index.shtml」ファイルにする場合には、他のindexファイル(「.html」、「.htm」)が優先して表示されないように、他のindexファイルを削除またはファイル名変更して取り除いてください。

  2. 公開されたウェブページが正しく見えるかブラウザーで確認します。

練習問題

  1. 占いプログラムをSSI用に変更して、ウェブページ内で使用せよ。

  2. ランダム画像表示プログラムをSSI用に変更してウェブページ内で使用せよ。

練習問題の答