PHP - Visitors Online Counter

走远了吗. 提交于 2019-12-02 08:04:04

If you want your own internal counting system then I would suggest, storing such information related to website in database. And update the record everytime a user browses the website.

If this is shared hosting, you're counting everyone's session files, not just your own. That's why the number is huge and largely unrelated to how many people are on your site.

The best (free) way to count visitors is here: http://www.google.com/analytics.

If you want more realtime data, (for instance, currently active users) try: http://www.woopra.com/

If you're set on maintaining who is active on your site with your own code, I'd do so with a "last action" date field in your database on the users table. You will be able to do a PHP equivalent query to SELECT COUNT(id) FROM Users WHERE #{Time.now} > #{15.minutes.ago}

If you want to track anonymous users as well, rather than using the Users table, make a table with the visitor's IP as the identifying field and use the same technique mentioned above.

If the problem on the production server is that sessions are simply never deleted, you have two options:

  • Lower the session expiry time on your PHP installation.
  • Examine the last-modified date of the session files and only count them towards your total if they were modified within a certain amount of time from now.

Hmm, I'm not sure that reading the session files in the session dir is the best method.

Why not have a write on a db table for every page load. Then have a read that counts the number of unique users in the last x minutes?

It sounds db intensive but unless your site is ultra-busy, I can't see a problem.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!