Hi Quevas,
You can use a database, but you have to set a couple of things up.
Firstly, add a timestamp field to your online users table. By default this automatically stamps the current time whenever a row is created or modified.
In the online users table you could have a field that holds the URI (retrieved using $REQUEST_URI or similar method) of the current page that a logged in user is looking at, and update this whenever they change pages (causing the timestamp to update also).
If you then have a little script that runs first before the html is laid down for a page, you can check the online users database to see who is logged on, and anyone who's stamp is older than a set amount of time would have their row deleted. You then update your logged in user's row with the latest page, hence keeping them in the table.
Then in your login script check the online users table and if the userid is already present you can tell them that they are already logged in from a different system.
Generally, it's probably best to keep the timeout relatively short if the users are going to be logging in and out fairly regularly on different machines.
this way you can set a timeout on users etc.
hope this helps.
shapshankly
p.s. i find the best way to compare times is to use the unix time stamp option and subtract values.