<Cookieカウンターの作り方>
このカウンターは訪問者一人一人を個別にカウントして訪問回数を表示します
グラフィックカウンターにするのは難しいので、HTML文で出力する見本です。
作り方は
@サンプルプログラムをコピーし、ID等を自分のものに書き換える
Aファイル名の拡張子は「.cgi」として保存する
BftpはASCII形式で行なう
Cサブミットを「755」にセットする
DHTML文の<A HREF=>で呼び出す
(<FRAME>を使ったページを作れば自動起動も出来ます)
a href="counterQ.cgi">あなたの訪問回数確認
JavaScript編
JavaScriptグラフィックカウンター編
<CGI用サンプルプログラム>
#!/usr/local/bin/perl5
#一行目は、プロバイダーにperlのあるディレクトリーを確認して書き換えること
############### Set-Cookieヘッダ用に準備する。##################
# = 以降を(自分の内容に書き換えること) #
$cookie = "Q_COUNTER"; #キーワード
$cookieExpires = "Friday, 31-Dec-1999 00:00:00 GMT"; #有効期限
$cookiePath = "/~qpon"; #ID
$cookieDomain = "www2a.biglobe.ne.jp"; #URL
############### 環境変数HTTP_COOKIEを処理する #################
&cookieCutter; # 個人別アクセス数を調べて、数を1増やす
print "Content-type: text/html\n"; # Content-typeヘッダを出力
&SetCookie; # Set-Cookieヘッダを出力
print "\n"; # ヘッダの終わりを出力
############### ブラウザに表示する内容を出力 #################
print <<"EOM";
HTTP Cookie
EOM
print "あなたの訪問は[ ";
print $cookieJar{$cookie};
print " ]回目です。 \n";
print <<"EOM";
EOM
############### 環境変数HTTP_COOKIEを処理するサブルーチン ##########
sub cookieCutter {
local($key,$value);
foreach (split(/; /,$ENV{'HTTP_COOKIE'})) {
($key,$value) = split(/=/);
if ($key eq $cookie) {
$cookieJar{$key} = $value;
}
}
# 個人別のアクセス数を1増やす
$cookieJar{$cookie}++;
}
############### Set-Cookieヘッダを出力するサブルーチン #############
sub SetCookie {
print "Set-Cookie: ";
print "$cookie=$cookieJar{$cookie}; ";
print "expires=$cookieExpires; ";
print "path=$cookiePath; ";
print "domain=$cookieDomain\n";
}
|
|