本日  昨日
 
03/16(Sun) 00:38

クッキーカウンタによる個人毎の訪問回数の作り方(Web裏技さん)

クッキーカウンターとは、あなたのホームページへのアクセス回数を訪問者自身のブラウザに記録し表示するカウンターです。このカウンターを使えば、ある訪問者があなたのページをアクセスした時、あなたのページへの何回目のアクセスかをその訪問者が知ることができます。


作成手順を説明します。
  1. プログラムをダウンロードします.
  2. ダウンロードしたプログラムを編集します.
  3. プログラムを呼び出すHTMLファイルを編集します.
  4. プログラムとHTMファイルをサーバに転送し、実行権を設定をします.

プログラムをダウンロードします。

Web裏技さんのチャレンジCGIのコーナ「クッキーカウンター」から下記の2つのプログラムをダウンロードして下さい。ダウンロードのしかたはこちらです。

  • index.pl (クッキーカウンターを呼び出すスクリプト。index.cgiに名前を変更して保存します。)
  • cookie.pl (クッキーカウンタースクリプト)


ダウンロードしたプログラムを編集します。

  1. index.cgi
    • 1行目 #!/usr/local/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。
      多くのプロバイダはこの指定で大丈夫と思いますが、うまくいかない場合はプロバイダに問い合わせて下さい。Infowebの場合は #!/usr/bin/perl になります。

    • 6行目 $cookie_name = 'user-00';のuser-00をあなた固有の名前に変更します。私の場合は、tkikuにしてます。

    • (参考) 51〜59行目 CGIスクリプトから表示されるHTML文書です。index.cgiを実行すると、ここに書かれた内容が画面に表示されます。

  2. cookie.pl
    • cookie.plはなにも変更しません。そのまま使います。
(注)スクリプト内のHTML文書の変更は正常動作を確認した後にしましょう。
プログラムを呼び出すHTMLファイルを編集します。

  • index.htm から クッキーカウンター index.cgi をリンクするには index.htm の なかに <A HREF="index.cgi" TARGET="_blank">クッキーカウンター</A> と記述します。新しいページが開き、そこにindex.cgiで記述された内容が表示されます。

プログラムとHTMファイルをサーバに転送し、実行権を設定をします。

  1. index.cgi、cookie.pl、index.htm の 3つのスクリプトをサーバ側のルートディレクトリにアスキーモードで転送(put)します。

  2. ファイルの構成と実行権

    転送が終わったら、それぞれのファイルに下の実行権を設定します。

              index.htm
              index.cgi    (755)
              cookie.pl    (755)
    

さぁ,これで第一ステップが終わりました。index.htmを再読み込みし、クッキーカウンターをクリックしてみましょう。新しいページが開き、そこにindex.cgiで記述されたHTML文書の内容が表示され、カウント数がアップしてれば完成です。


改造しましょう(第二ステップ)

このクッキーカウンタはもともとCGI本文中にHTML文を記述することが前提になっています。上の方法は、動作確認を簡単にするために便宜的に<A HREF="index.cgi" TARGET="_blank">クッキーカウンター</A> と記述しています。この方法では

  • ホームページにアクセスがあっても「クッキーカウンター」をクリックしないとカウントアップしない。
  • 結果が別の新しいページに表示される。
など、実際に使ってみると使いにくい所があります。CGI中にHTML文を記述せずに今使ってるHTML文に追加することで、ホームページにアクセスがあったら自動でカウントアップし、同じ画面内にカウント数を表示したいですよね。

<IMG>タグを使った自動カウント・表示方法
<IMG>タグを使って index.cgi を実行し、別途作成した表示用CGI dispcnt.pl でカウント数を表示する方法です。

  1. 下のスクリプトをマウスでドラッグし、メモ帳などのエディタで「コピー」→「貼り付け」して、表示用CGI dispcnt.pl を作成します。
    #! /usr/local/bin/perl #↑perlの存在するpathに書き換えてください。 #------------------------------------------------------------ # クッキーカウンター表示ルーチン dispcnt.pl (1999/02) # by「菊池さん」 <http://kikuchisan.net/> #------------------------------------------------------------ require './cookie.pl'; # クッキー取得 $cookie_name = 'user-00'; &decode_cookie($cookie_name); # $COOKIE{'count'}にカウントをセット # クッキー出力 print "こんにちは。<font color=red size=+1>"; print "<b>$COOKIE{'count'}回目</b></font>の訪問です。<p>\n";

  2. 1行目 #!/usr/local/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。

  3. 上のスクリプトの$cookie_name = 'user-00';のuser-00を index.cgi で変更した名前と同じものに変更します。

  4. print文の" "内の文章が画面に表示されます。これをあなたの表示したい内容に変更します。

  5. dispcnt.plをindex.cgiと同じディレクトリにアスキーモードで転送し、実行権 755 を設定します。

  6. カウント数を表示したいHTML文に以下の文を記述します。1行目は<BODY>の次行に、2行目はカウント数を表示したい場所に記述します。
    <img src="./index.cgi" width=1 height=1>
    <!--#exec cmd="./dispcnt.pl"-->

  7. この方法では、ブラウザの「戻る」ボタンなどでページが読み込まれる度にカウントアップされるという難点があります。より正確な訪問回数にするには次のフレームによる方法があります。
フレームと<IMG>タグを使った自動カウント・表示方法
  1. 1〜5項までは上と同じ作業をします。

  2. フレーム定義の index.htm に以下の文を記述します。記述する場所はどこでもかまいません。
    <img src="./index.cgi" width=1 height=1>

  3. カウント数を表示したいHTMLに以下の文を記述します。記述した場所に回数が表示されます。
    <!--#exec cmd="./dispcnt.pl"-->

  4. この方法ではブラウザの「再読み込み」ボタンを押して index.htm を再読み込みしない限りカウントアップは行われませんのでより正確に回数が把握できます。現在、フレーム形式のHPをお持ちの方にはお勧めです。
表示用CGI dispcnt.pl を使わないで自動カウント・表示する方法
この方法はフレームの自動表示機能を使って行います。
  1. 現在のフレーム構造(index.htmの内容)
    フレーム定義が下記のように、左にメニューフレーム、右にメインフレームの構造になってるとします。 <FRAMESET COLS="180,*" FRAMEBORDER="no" BORDER="0"> <FRAME SRC="menu.html" NAME="menu"> <FRAME SRC="main.html" NAME="main"> </FRAMESET>
  2. 自動カウント・表示のための変更(変更後のindex.htmの内容)
    左のメニューフレームをさらに上下に分割し、上のフレームでindex.cgiを自動実行し、同時にカウント数を表示させるように変更します。変更個所は下の3行の追加です。 <FRAMESET COLS="180,*" FRAMEBORDER="no" BORDER="0"> <FRAMESET ROWS="140,*" FRAMEBORDER="no" BORDER="0"> ←-----追加 <FRAME SRC="index.cgi" SCROLLING="no"> ←-----追加 <FRAME SRC="menu.html" NAME="menu"> </FRAMESET> ←-----追加 <FRAME SRC="main.html" NAME="main"> </FRAMESET>
  3. index.cgiプログラム内の不要な部分を変更・削除します。
    • カウント数表示内容の変更 54行目 このページへのあなたのアクセスは <font size=+1><b>$COOKIE{'count'}回目</b></font>です。<p>\n をあなたの好きな表現に変更します。(このままでもかまいません)

    • 以下の部分は不要なので削除します。 53行目 <h1>クッキーカウンタ</h1> 55行目 <h3>文字化けテスト</h3> 56行目 「表示」「機能」<br> 57行目 「表\示」「機能\」<p>

 
 
©1997- Kikuchisan's workshop All rights reserved //

スポンサーリンク

関連コンテンツ