单个数据库站点访问的站点计数器

时间:2014-01-18 23:46:04

标签: php sql database

我目前在我的网站上有一个php网络摄像头,但我希望在我的数据库的每个页面都有一个不同的计数器,所以如果我要访问记录1,它会显示不同的数量然后如果我要访问记录56,有一种简单的方法可以使用我目前的代码吗?

session_start();
$counter_name = "counter.txt";

// Check if a text file exists. If not create one and initialize it to zero.
if (!file_exists($counter_name))
{
    $f = fopen($counter_name, "w");
    fwrite($f,"0");
    fclose($f);
}

// Read the current value of our counter file
$f = fopen($counter_name,"r");
$counterVal = fread($f, filesize($counter_name));
fclose($f);

// Has visitor been counted in this session?
// If not, increase counter value by one
if(!isset($_SESSION['hasVisited']))
{
    $_SESSION['hasVisited']="yes";
    $counterVal++;
    $f = fopen($counter_name, "w");
    fwrite($f, $counterVal);
    fclose($f); 
}

Print "views:$counterVal";

我尝试过搜索此主题,但我找不到有助于解决此问题的答案。我的猜测是我基本上必须为每个单独的站点创建一个单独的文本文件,但我不确定编码是否会这样做。 在此先感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

你是对的,最简单的方法是使用一个单独的文本文件来保存每个页面的计数。

$page =  $_SERVER["REQUEST_URI"]; /* Returns The Current url */
$page = str_replace ( '/' ,'-', $page); /*Get rid of the slashes so it can be used as a filename*/
$counter_name = "counter" . $page . ".txt";