Info

2017年11月18日 (土)
4人が見てるかも
Menu
Top
PHP+MySQL
Downloads
BBS
Links
PHP総合
データベース総合
PHPアクセラレータ
PHP関連サイト
スクリプト検索
その他
History
2006
2005
2004
2003
2002
2001
レンタルサーバ比較
RSS Viewer (実験)
E-Mail me E-Mail icon
PHP WebRing
@PHP.ring
各種書籍

PHPプロ!マガジン 2007年夏号表紙
PHPプロ! マガジン
2007年夏号 Vol.4


PHP関連書籍一覧
DB関連書籍一覧
3D関連・その他書籍


らくらくOracleとってもやさしいPL/SQLプログラミング塾
らくらくOracleとってもやさしいPL...


PHP+MySQL - カウンター1

2. SCDBで使用するテーブル

 さて、SCDB で使用するテーブルですが、内容はいたってシンプルです。仮にこのテーブルの名前を simple_counter とすると、

[simple_counter]
-------------------------------
 name | count | lastip
------+-------+----------------
 cnt0 |     0 | 0.0.0.0
 cnt1 |  1234 | 192.168.12.34
-------------------------------

こんな感じのテーブルになります。
それぞれのカラムは次のような意味を持ちます。

nameカウンターの名前
countカウンターの値
lastip同ホストからの連続アクセス検査用文字列

上のテーブルの例でいえば、
'cnt0' という名前のカウンターは、カウンターの値が 0 で、検査用文字列は '0.0.0.0'。
'cnt1' という名前のカウンターは、カウンターの値が 1234 で、検査用文字列は '192.168.12.34'。
という意味になります。

 検査用文字列はここではIPアドレスになってますが、単なる文字列なので、クッキーを使って取得した文字列でも、逆引きで取得したホスト名でも、文字列だったらなんでも大丈夫です。
 「連続アクセスをチェックするための仕掛け」とは、要はこの文字列のことです。この文字列にホスト毎のユニークな「何か」を設定すれば、それを使って連続アクセスが検出できるという訳です。

 このカウンターのすごいところは、「名前の数だけカウンターが作れる」ということです。つまり名前さえ変えれば、すべてのページにアクセスカウンタを用意することもできるし(しないとは思うけど…)、この名前にIPアドレスを使用すれば、IPアドレス毎のアクセス数を計るということもできます(しないとは思うけど…)。

 このテーブルを作成するときの SQL 文は、以下の様になります。

CREATE TABLE simple_counter (
    name VARCHAR(16) NOT NULL UNIQUE,
    count INTEGER UNSIGNED NOT NULL DEFAULT 0,
    lastip VARCHAR(64) NOT NULL DEFAULT '0.0.0.0',
    PRIMARY KEY(name)
    );

 name は最大16文字、lastip は最大64文字になってますが、これは好きなように変えてもいいでしょう。(とは言っても最大255文字です)

 SCDB はこのテーブルがないと動かないので、あらかじめ作成しておきます。

 また、カウント値を記録するためのレコードを作成するときの SQL 文は、以下の様になります。

INSERT INTO simple_counter (name) VALUES ('cnt0');

 'cnt0' はカウンターの名前です。ここは好きな名前が付けられます。レコードを作成しないとカウントされないので、これもあらかじめ作成しておきます。

[Page: 1 (2) 3 4 5 6 7 ] →次

広告

ServerQueen
月々525円〜
RSS Feeds
RSS News Feed 全ニュース
RSS News Feed DA実験室関連
RSS News Feed PHP/DB関連
[Valid RSS]
RSS feed meter for http://www.darkangel.jp/

check out my neighbors in meatspace

RDF Resource Description Framework Developer Icon