PHPを使ってホームページにカウンタを作成する方法について記載します。サーバ上に置いたカウントファイルでカウントする方式です。
環境
OS ubuntu22.04
Webサーバ apache2.4.52 (サーバのIPは「192.168.19.128」とします)
PHP 8.1.2-1ubuntu2.14(ctl)
カウンタプログラムの作成
ホームページに閲覧者が訪れるたびに、来訪者数を1づつ増やしていき、何番目に来訪したのかを表示させます。
来訪者数のカウントは、テキストファイルに数字を書き込むことで数えていきます。
プログラムファイル名 counter.php
<?php
$counterFile = ‘counter.txt’; //カウントファイル
if (file_exists($counterFile)) {
$counter = intval(file_get_contents($counterFile));
} else {
$counter = 0;
}
$counter++; //来訪者数をインクリメント
file_put_contents($counterFile, $counter); // ファイル保存
echo “訪問回数: ” . $counter;
?>
カウントファイル名 counter.txt
※ファイルの中は空でいいです
作成したら、ffftpを使ってubuntuにアップロードします。
フォルダの準備とアップロード
今回は、
/var/www/html/php
というフォルダを作成し、ここに「counter.php」と「counter.txt」をアップロードしました。
cgiなので、実行権限が必要になるので、パーミッションの変更を忘れないでください。
私は、
フォルダ /var/www/html/php パーミッション 707
実行ファイル counter.php パーミッション 705
カウントファイル counter.txt パーミッション 706
に設定しました。
実行結果の確認
ブラウザから、
http://192.168.19.128/php/counter.php
を呼び出すと、
訪問回数: 1
と表示されれば成功です。
●問題点
今回のプログラムでは、
画面を更新する(F5)たびに訪問回数がインクリメントされてしまう
http://192.168.19.128/php/counter.txtを直接閲覧されてしまう
という問題点があります。
この問題点は、DBを使用すると解決できるのですが、DBのインストールが必要になるので、次の機会に解説します。