カウンタプログラムをCGIプログラムにする

前出のカウンタプログラムを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 $counter;
  1. 出力をHTMLの記述にすればよいので、最後のprint文を以下のように変更します。
    print "Content-type: text/html\n\n"; # HTML出力の際のお約束
    
    print <<"EOM"; # 「ひな型」の「HTMLヘッダー」から抜粋
    <html>
    <head>
    <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
    </head>
    <body>
    EOM
    
    print $counter; # カウンタ出力部分。タグで修飾しても良い。
    
    print "</body>\n</html>\n"; # 終了タグ
  2. ファイル拡張子を「.cgi」にして保存します。「名前を付けて保存」から保存してください。

動作テスト

ローカルテスト

「Perlを始めよう!」の「WWWブラウザに出力」でテストします。

  1. 「コマンド」→「WWWブラウザに出力」を選択します。
  2. フォーム入力ウィンドウが表示されるので「OK」ボタンを押します。

WWWブラウザには、「Content-type: text/html」の文字が表示されますが、アップするとこの部分は表示されなくなるので、無視してよいです。

サーバーにアップ

FFFTPを使って適当なフォルダにアップしてください。

サーバーテスト

WWWブラウザでサーバーテストを行います。アップしたファイルのURLアドレスを入力してWWWブラウザで確認してみましょう。

練習問題

占いプログラムを変更して、ランダムに画像が表示されるWebページを作成せよ。

(ヒント: ランダムでIMGタグを出力するようなプログラムに変更すれば良い)

練習問題の答