2014-01-18 57 views
0

我目前在我的网站上有一个php webcounter,但我希望有一个计数器在我的数据库的每个页面上都不相同,所以如果我要访问记录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"; 

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

+3

这听起来像你已经熟悉数据库。什么阻止你有一个与相应的计数器的页面URL表? – Kat

回答

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";