我正在编写博客。我感兴趣的是如何在旁边添加一个计数器,以查看有多少人阅读了不同的文章。
据我所知,如果你有一个网站计数器,那么你通常会在数据库中保存IP和日期,所以你只计算一次这个人。
但是,我如何确保阅读特定文章的人只对该文章计算一次?
如果我要为每篇文章保存每个访问者IP,那么数据库会变得非常大。我现在想到可能为每个访客创建一个会话。在此会话中,我保存了Person阅读的每个ArticleID。所以在我更新数据库中的计数器之前,我检查它是否已存在于Session中 - 如果不是增量计数器并保存在Session中,否则不要。
这是正确的方法,还是有其他方法可以做到这一点?
答案 0 :(得分:3)
这取决于您要保存的数据。你可以保存:
点击次数(统计所有人/机器人/ ......打开页面的人数),这会给读者带来虚假的印象,因为刷新会让我算两次。
唯一身份访问者数量,为用户创建会话。并在会话中仅增加一次计数器。这可以通过设置永久性cookie来改善,但对我来说看起来有点矫枉过正。顺便说一句,我可以打开文章而不读它!
与文章互动的人数。您可以进行一些javascript捕获(鼠标滚动,点击文章文本,......),将文本拆分为“阅读更多”等部分。
如果我是你,我会将其命名为“观看次数”,并使用解决方案2.并将其与Google Analytics(或类似解决方案)结合使用,以了解有关访问者的更多详细信息。
答案 1 :(得分:2)
我更喜欢使用Google AnalyticsAPI来完成此类任务。它很难第一次实施 - 但一旦实现它将帮助你完成任何项目。
你可以在这里阅读 - http://code.google.com/intl/en/apis/analytics/docs/gdata/home.html
答案 2 :(得分:2)
Google分析是更好的方式
但如果您想通过编程来完成,请按照步骤操作。
i)在您的表格中,根据特定文章的数据,只需添加一列no_of_view或您想要提供的任何内容..
ii)在页面的开头写下php for ::
的代码 from the url you can get the id of current article.
then from select query get the value of column no_of_view for particular ID (article)
then fire a query for update that record for no_of_view column with +1
If you want to get that more accurate then add ipaddress column and date also....
答案 3 :(得分:1)
我会在用户的浏览器上设置一个cookie并将其发送到服务器。如果cookie是新的,那么这是第一次阅读该文章的新用户。
答案 4 :(得分:0)
我认为,当用户点击文章更新数据库表字段名称中的列时,您可以执行ajax函数' number_of_click'根据文章ID和其他相关参考文献
并通过简单查询显示' SELECT no_of_click FROM article WHERE id =' {$ individual_article_id} ....'';