solprovider@xxxxxxxxxx wrote:
On 9/17/08, André Warnier <aw@xxxxxxxxxx> wrote:Justin Pasher wrote:amiribarksdale wrote:What is the "standard" way to determine whether a user is indeed loggedin toa site and online right then? I have a web app where users log in andget acookie. Part of it is the sessin cookie which expires at the close ofthesession, and part of it is a longer lasting authentication cookie. Am I supposed to use the session cookie for this? Does it have to be storedinthe db so it can be timestamped? AmiriSince HTTP is a stateless protocol, it requires a little creativity totrack "online" users. One way is to have a table in a database that keeps track of a person based upon their username/IP address and the last time they loaded a page. For example* Client visits a page * Add/Update a row in the table with the client's username/IP address andset the timestamp to the current time* To retrieve a list of "online" users, pull all rows in the database witha timestamp within the last X minutes (for example, 10 minutes).You could then periodically delete any rows from the table that are olderthan X minutes or hours. This would help keep the size down. The username for a client would be based upon a cookie or session information stored within your page.A more efficient table would contain all visitors with the timestamp of the last visit rather than adding a row for each visit. You must already have a table of all visitors so this only requires adding a "LastVisited" field/column. The data could also be queried for visitors that have not visited in the last 6 months.
Yes, that is why I said "add/update a row" the row and not just "add a row". A new row for each page request could quickly lead to a bloated table if someone wanted to be really mean to your site.
-- Justin Pasher --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx