Lesson1.アクセスカウンタをつくる。


いまさらアクセスカウンタって言うのもなんですが、練習に作ってみましょう(Hello Worldより、ましでしょ?)ファイルは、次の2つを使います。

Perl list(ファイル名を、act.cgiにしてください)
#! c:/perl/bin/perl

# カウントファイルの読み込み
open(COUNTER, "+<./count.dat") or die("ERROR:File can't open");
eval { flock( COUNTER ,2 ); } ;
$count = <COUNTER>;

# カウントファイルへの書き込み
seek(COUNTER,0,0);
print COUNTER ++$count;
close(COUNTER);


# HTML出力
print "Content-type: text/html\n\n";

print "$count"

HTML list(ファイル名をact.shtmlにしてください。)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head><title>Perlアクセスカウンタ</title></head>
<body>
<p>
あなたは・・・・<!--#exec cgi="act.cgi"-->番目の訪問者です。</p>
</p>
</body>
</html>
count.dat へのリンク

act.shtmlを実行したとき、下のような表示が出たら成功です。(カウンタ数は、変わります)



簡単な解説


act.cgi側の簡単な解説をします。


#! c:/perl/bin/perl
PerlインタプリタのPath指定です。ですのでプロバイダにアップロードする場合はここを各プロバイダに合わせて書き直します。

# カウントファイルの読み込み
open(COUNTER, "+<./count.dat") or die("ERROR:File can't open");
eval { flock( COUNTER ,2 ); } ;
$count = <COUNTER>;
count.datを入出力用に開いています。ここで開けなければ、ERROR:File can't openを表示してプログラムは終了します。このファイルを一度に2人以上が開けることがないように、排他的ロックを行い、その後$countにCOUNTERの内容を入れます。$は変数の頭につけるものです。

# カウントファイルへの書き込み
seek(COUNTER,0,0);
print COUNTER ++$count;
close(COUNTER);
COUNTERの頭だしを行い、$countをインクリメント(1足す)したものを、COUNTERに出力しファイルを閉じます。

# HTML出力
print "Content-type: text/html\n\n";
ここで、以降がhtmlファイルであることを示しています。
print "$count"
アクセス数を表示します。

付録.レンタルサーバを探しています。

レンタルサーバを決める前に見切り発車してしまった「Perlもはじめました。」ですが、一応サーバーも探しています。Masaが知らないお勧めサーバーの情報がある方は、掲示板へお願いします。


サーバー名 こんな感じ
サイトサーブ ネットショップサイト用という感じ。ネットショップで売り買いをやろうという人にはいいのかな。料金的には、開通料(?)9,450+月額3,675-と言った感じ。
さくらインターネット 年払いで、\1,500-!! で超格安。
Perl,Ruby,Pythonも使えるみたいだし(ってどれもこれから勉強なんだけどね)
アイル ホスティングサービス 月額\945-もあるけど、\1995-(12ヶ月契約)のサービスでないと独自CGIは使えないみたい。HP内の見積もり計算表が妙に高くなるのは、他に諸経費がかかるということ?でも30日間返金システムとか、無料顧客サポートなどが手厚い感じ
1-man.net 年払で一万以外他に料金がかからないことが一番の売り。追加料金がないのは安心か。
ロリポップ! すごいポップなホームページだけど、CGIは元よりブログ機能まで完備しているのが優れもの。なんか料金も安いし、今ならキャンペーン価格 4725円/年もひかれるな。


参考:
 1)ホスティング、レンタルサーバー売れ筋ランキング


まだまだ調査中。




Copyright (C) 錬金術師Masa
更新:2005年07月09日
http://www.katch.ne.jp/~mh524-1997/