![]() |
![]() |
![]() |
![]() |
管理運営:有限会社ミスティーネット |
|||
| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 | | |||
![]() |
![]()
![]()
![]()
|
HOME >> カウンターを作ってみよう!
■ カウンターの仕組み
カウンターの仕組みは非常に簡単で、現在のカウント数をファイルから読み込み、それに1を加えた数を再度ファイルに保存し、表示します。 カウンターには大まかに下記の3種類があります ○ すべてCGIで動作するカウンターすべてCGIによるカウンターは、実際には余り使われませんが、仕組みがシンプルなので、 後に説明するSSI方式のカウンターを理解するのに役立ちます。 [CGI方式のカウンターの動作イメージ] ■ CGI方式のカウンター
最も基本的なCGI のみのカウンターです。 この方法では、表示するHTMLをすべてCGI内に記述しなければならない為、あまり使われませんが、SSIのカウンターもこれが基本となっています。 [count.cgi]
SSI 方式のカウンターでは、カウント数の読み書きはCGIで行ないますが、表示はSSIを使って行ないます。 ■ SSI <exec> 方式のカウンター
SSI を使ったカウンターの場合には、既存のHTML内の好きな場所にカウンターを組み込むことができます。
ブラウザーで 「count.shtml」 を呼び出すと現在のアクセス数が表示されます。 ブラウザーの更新ボタンを押すごとに、カウント数が1づつ上がって行きます。 *注:SSIに対応していないサーバーではこのカウンターはご利用いただけません。 SSIの対応につきましては、ご利用のレンタルサーバーや、サーバー管理者までお問い合わせください。 [count.cgi]
#!/usr/local/bin/perl
このCGIには、アクセス数を表示する機能がついていません。$logfile = "./count.dat"; open(DATA, "+<$logfile"); flock(DATA, 2); chomp($count = <DATA>); $count++; seek DATA, 0, 0; print DATA "$count\n"; close(DATA); printf("%04d", $count); ← カウント数をSSIへ返す exit; SSI方式のカウンターでは、「shtml」 ファイル内からCGIファイルを呼び出してその返り値を表示します。 [count.shtml]
<html>
SSI方式では、「shtml」 ファイル内の好きな場所にカウンターを表示できる為、CGIのみのカウンターよりも自由度が高くなっています。
<!--#exec cmd="./count.cgi"--> ← CGIファイルの呼び出し </body> </html> ■ SSI <include> 方式のカウンター
ご利用されているサーバーの設定によっては、「exec」 方式のSSIを利用できない場合があります。 この場合には 「include」 方式でカウンターを表示することが出来ます。 [count.cgi]
#!/usr/local/bin/perl
このCGIの内容は、「exec」 方式のものと同じです。
$logfile = "./count.dat"; open(DATA, "+<$logfile"); flock(DATA, 2); chomp($count = <DATA>); $count++; seek DATA, 0, 0; print DATA "$count\n"; close(DATA); printf("%04d", $count); ← カウント数をSSIへ返す exit; [count.shtml]
<html>
CGIの呼び出し方法が、「exec cmd」 から 「include virtual」 に変わっています。
<!--#include virtual="./count.cgi"--> ← CGIファイルの呼び出し </body> </html> |