jbingman Posted June 2, 2008 Share Posted June 2, 2008 Hi, I'm trying to get a code for showing the current number of people viewing the page. It seems like something that would be PHP OOP but I cant find anywhere online to help me. it would just say something like , "[blank] number of guests currently viewing this page" something along those lines. If its not PHP please move this to somewhere I can get this info. THANKS! Quote Link to comment https://forums.phpfreaks.com/topic/108324-page-views/ Share on other sites More sharing options...
redbullmarky Posted June 2, 2008 Share Posted June 2, 2008 it's not really anything specifically OOP - it can be done in a number of ways. The way I do it is to use custom sessions - ie, storing the sessions in a database so that sticking stuff in $_SESSION will put it into the database instead of into files. This way I can query who is online, where they are, etc. SMF I believe does this, as does phpBB etc. Take a look at session_set_save_handler() for more info to see if this is what you want. Simpler ways would just be to log a URL and a timestamp each time someone hits a page, then just querying who has been on a certain page within a certain time. 2-5 minutes is realistic enough as there's no real nice way of knowing whether someone is still actually viewing the page, just idle, or closed their browser tab. Quote Link to comment https://forums.phpfreaks.com/topic/108324-page-views/#findComment-555410 Share on other sites More sharing options...
jbingman Posted June 2, 2008 Author Share Posted June 2, 2008 So with this method, it would overwrite the number of page views everytime you refresh the page or go to a new one correct? heres an example of what im trying to do.... http://haloboosting.com/ If you look at the Who is Online: section on the right side thats what i want... Quote Link to comment https://forums.phpfreaks.com/topic/108324-page-views/#findComment-555904 Share on other sites More sharing options...
redbullmarky Posted June 3, 2008 Share Posted June 3, 2008 depending on what you want will determine what you need to store. if you just want a relatively simple "how many online", then on each page hit, store the user's ID (if applicable, else store zero to signify a guest), IP address and the timestamp in the database. after that, just an SQL "SELECT" to get the number of unique IP's from the table created since a particular time (ie, within 5 mins). problem - if a group of users from, say, a company, log in - ie, they all share the same IP address - then you might cause confusion. best way (though still not 100% accurate) is to use custom sessions as I mentioned in my last post. Regardless of IP, the session id will be unique to each user. So get your custom session handler to store the session id, user id and timestamp (along with the session data - read the notes within the manual for session_set_save_handler) when the user hits the page and do the query as with the other method. like i say, this is the most common way of doing it as used by many forums and CMS's, so is probably your best and most reliable bet. Quote Link to comment https://forums.phpfreaks.com/topic/108324-page-views/#findComment-556296 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.