I have the following code to count visitors on my PHP site. It works fine on my local development machine using WampServer but when I uploaded my files to my hosting account for
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.
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:
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.
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.