2011-07-05 44 views
0

我试图做一个帖子查看计数器,迄今为止它的容易,但我有以下问题,当用户重新加载页面它再次更新,我想只跟踪原料,但不是重载。我怎么能做到最好?设置一个cookie?页面查看/发布查看计数器

的网站:该网站拥有超过10K +岗位,林不知道,如果有一个cookie来实现将工作:)

而且有关更新的数据库,我应该有更新的低优先级做实时,或者像每5分钟一次保存数据和处理?

Gimma请输入一些我如何做到这一点。谢谢

+0

我找到了一个很好的解决方案: 我登录IP +后ID在阵列中,5分钟后我所说的脚本,更新数据库,并与ARRAY_UNIQUE我过滤重复出来,不是最好的解决办法,但应适用于我谢谢为您输入:) – MasterX

+0

也使用session_id,否则如果人们从同一办公室访问,那么您将只能得到每个办公室的一次访问 –

回答

0

拿独特的用户比较ip |会话Id |如果再相同值的组合存在不`吨插入或更高版本,采取独特的价值观

+0

做了一些微妙的谢谢,检查我的评论我的帖子:) – MasterX

0

你可以使用cookie来处理它,比如如果命中已更新,将cookie var UPDATED设置为1。
但COOKIE的问题是任何人都可以编辑它,所以你也可以用SESSION试用它,因为用户不能编辑它。
DB我​​不是一个好选择,你也可以试试Google Analytic

+0

SESSION与COOKIE链接;如果用户擦除cookie,会话也会丢失。 – tucuxi

+0

我说没有人可以编辑会话,我试图说'没有人可以改变他们的会话他们的价值' – Sourav

+0

编辑&删除不同 – Sourav

0

另一个答案插入,但过程页ID,从Page View Counter like on StackOverFlow建议,是

  • 加上“令牌资源”在您的页面标题中,如<link href="https://stackoverflow.com/questions/246919/increment-view-count" type="text/css" rel="stylesheet" />。请注意,令牌资源应该是页面特定的(由于路径),并且所有现代浏览器都会缓存它们下载的资源文件。
  • 只有在重新下载令牌资源时,才会增加计数器(可以使用apache的mod-rewrite保持整洁的URL,然后映射到您拥有的任何递增计数器)。这避免了cookie或存储[ip |会话|页面]为每个综合浏览量,减少数据库请求的数量;并避免了cookies的需要。

它和[ip |会话|页面]组合再次攻击(无论哪种情况,有人可以在不存储cookie的情况下编写一个请求资源或页面的紧密循环)。但是,在计算所有请求时(由于NAT,您不能依赖每个人的唯一IP),没有安全 - 失败的方法来避免滥用。