我想计算用户访问过的总页数。问题出现在我的代码中,当用户访问该页面时,计数器增加1,这是可以的,但是当用户多次刷新页面时,计数器会不断增加。我想在第一次访问用户时增加计数器,但是在刷新页面时不会。我该如何解决这个问题?
答案 0 :(得分:1)
最好的方法是使用Google Analytics.之类的js跟踪器。
答案 1 :(得分:1)
使用sessions。
<?php
session_start();
if (!isset($_SESSION['visited']))
{
$_SESSION['visited'] = 1;
//increase the page view counter...
}
但是,如果用户已禁用cookie,则此操作无效,因为没有cookie支持使浏览器无法保留会话ID(这是会话工作所必需的)。因此,在没有cookie的浏览器中刷新仍然会产生太多的点击。
要处理这些情况,您可以记住IP($_SERVER['REMOTE_ADDR']
)并检查给定的IP是否已访问过您的网页。请注意,此解决方案仍然容易受到攻击 - 依赖于使用代理服务器的“复杂”攻击仍然可以计算太多点击次数。
最佳选择是使用Google Analytics之类的外部跟踪系统。
答案 2 :(得分:0)
尝试使用会话,一个非常简单的例子是:
<?php
session_start();
$counter = 0;
if(! isset($_SESSION['visited'])):
$counter +=1;
$_SESSION['visited'] = TRUE;
$_SESSION['counter'] = $counter;
endif;
echo $_SESSION['counter'];
?>
答案 3 :(得分:0)
您可以使用cookies。在访问时检查是否设置了cookie,如果没有为页面设置cookie(cookie的生命周期可能根据你的需要而有所不同),只有在没有设置cookie的情况下才更新计数器。 如果您需要反复杂乱 - 而不是使用像谷歌分析这样的东西。