そらのうきぶくろ

Script

Maricount

ところでこれは何?

MySQLとPHPを使用したアクセスカウンタのスクリプトです。 このサイトでも利用しています。
自由に利用してください。

できること

  • 合計・今日・昨日の訪問者数を別々に表示可
  • 文字列を表示するだけなのでシンプル!
  • 同一ホストからのアクセスは1日1回でカウント

動作環境

Webサーバ
Apache 2.2.17で動作確認済
MySQL
MySQL 5.5.8で動作確認済
PHP
PHP 5.3.4で動作確認済

満たしていなくても動くかも。

使用方法

データベースの初期化

phpMyAdminを利用できる方は、書庫を解凍して作成されたファイルmaricount.sqlとmaricount_num.sqlを、データベースにインポートするだけで終わりです。 手動で初期化する場合は、以下のSQLコマンドを実行すると完了します。

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE IF NOT EXISTS `maricount` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date` date NOT NULL,
  `host` varchar(128) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `host` (`host`,`date`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;

CREATE TABLE IF NOT EXISTS `maricount_num` (
  `id` int(11) NOT NULL DEFAULT '0',
  `total` int(11) NOT NULL DEFAULT '0',
  `yesterday` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `maricount_num` (`id`, `total`, `yesterday`) VALUES
(0, 0, 0);

設定で使用するテーブル名を変更することができるので、テーブル名は自由に変更して構いません。

Maricountの設定

設定は、maricount.phpをテキストエディタで開いて行います。

$dbhost="db.example.com";				//DB Host Name
$dbname="database";						//DB Name
$dbtable="maricount";					//Table Name(Save Hosts)
$dbtable2="maricount_num";				//Table Name(Save Counts)
$dbuser="user";							//DB Login User Name
$dbpass="pass";							//DB Login Password
$cdigits=5;								//Total Count Digits
$tdigits=2;								//Today Count Digits
$ydigits=2;								//Yesterday Count Digits
$echoerror=1;							//Echo Error(0 or 1)
dbhost
MySQLサーバのアドレスを設定します。
dbname
使用するデータベースの名前を設定します。
dbtable
id, date, hostの3つのフィールドが存在するテーブルの名前を設定します。データベースの初期化時に設定を変更していない場合はそのままで構いません。
dbtable2
id, total, yesterdayの3つのフィールドが存在するテーブルの名前を設定します。データベースの初期化時に設定を変更していない場合はそのままで構いません。
dbuser
データベースにログインするためのユーザ名を設定します。
dbpass
データベースにログインするためのパスワードを設定します。
cdigits
訪問者数の合計を表示する時の数字の桁数を設定します。
tdigits
今日の訪問者数を表示する時の数字の桁数を設定します。
ydigits
昨日の訪問者数を表示する時の数字の桁数を設定します。
echoerror
データベースへの接続に失敗したときに、合計人数が表示される場所に(Error)と表示するかどうかを選択します。0=表示しない 1=表示する

アクセスカウンタの設置

設置したいファイル中の何処でもいいので、次の1行を記述して下さい。

< ?php include('maricount.php'); ?>

ただし、maricount.phpの部分には、maricount.phpへのパスを入力して下さい。また、Wordpress内で利用したいという方は、次のようにタイムゾーンを指定する必要があります。

< ?php date_default_timezone_set('Asia/Tokyo'); include('maricount.php'); ?>

上の行以降で、アクセスカウンタを設置したい部分に、次のように記述します。

合計: < ?php echo $maricount; ?>
今日: < ?php echo $maritoday; ?> / 
昨日: < ?php echo $mariyesterday; ?>

要するに、$maricountには訪問者数の合計、$maritodayには今日の人数、$mariyesterdayには昨日の人数が格納されているので、表示方法は適宜変更して下さい。

※上のコードには、<と?の間に半角スペースが入っているので、記述する際は半角スペースを取り除いてください。

動かないんだけど?

動作環境を満たしているか、maricount.phpのパーミッションの設定はどうか、確認してみましょう。 パーミッションの設定は利用しているサーバによって異なります。

echoerror=1で、合計値の所に(Error)が出るときは、データベースに接続できていません。 データベースサーバのホスト名、ユーザ名、パスワード、データベース名を確認しましょう。

それでも何かおかしいときは、テーブル名が間違っている可能性があります。 データベースの初期化、Maricountの設定を見直してみましょう。

ダウンロード

Maricount ver 1.0
本体のphpファイルと、データベース初期化用の.sqlファイルがあります。サーバにアップロードする必要があるのはphpファイル1つだけです。