PHP:使用cookie / ip对特定项目进行独特访问/点击

时间:2009-07-31 17:48:11

标签: php cookies count

我使用一个简单的MySQL表来计算网站中特定页面/项目的日命中数。为页面/项目ID使用“id”列,为访问/点击日使用“date”,为点击次数使用“hits”列。

每当有人访问该页面时,该特定日期的点击值都会更新为+1。

但是,每次刷新或重新访问页面时,该值都会再次更新,我需要一种方法将页面ID保存在cookie或数据库中的访问者IP中,以便只更新一次点击。

我从来没有使用过cookies,所以我真的不知道怎么做以及数据的限制,而不是存储在cookie中。

我认为保存数据库中访问者的IP地址真的是浪费了queires和bandwitch,我读到它并不总是能够获得真正的IP,这可能会产生一些问题,而且一些命中没有更新。

我还读到最好不要过多地使用GLOBAL变量......

有人可以向我解释最好的方法吗?怎么做?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果你更愿意将cookie作为PHP变量来处理,那么你很可能会非常熟悉它,我会使用会话。

session_start()
$page = 1; // Page ID
if(isset($_SESSION[$page]))
{
    // Do something if the person refreshed
}
else
{
     $_SESSION[$page] = time();
     // record hit.
}

获取$ page变量中的页面ID,并将其保存在会话中。会话就像一个cookie,除了它保存在服务器端。

基本上,如果存在具有该页面ID的变量,它将不执行任何操作,否则它会记录命中并设置变量。

您可以查看本教程以获取有关会话的更多信息:http://www.tizag.com/phpT/phpsessions.php

像Cookie一样,Sessions只会持续一段时间。所以它会记录几天后的访问。

您甚至可能想要手动检查上次访问的时间。如果它超过一个小时,记录一个新的命中,因为它们可能不仅仅是刷新。