Also, ich stell dir 2 Ansätze vor und du sagst mir welchen du haben willst, dann sehen wir weiter:
1.)
Grundprinzip ist, dass von jedem User auf deiner Seite die IP in einer Datenbank gespeichert wird und bei jedem Seitenaufruf die Timestamp Variable dazu. Nun wird widerrum bei jedem Seitenaufruf (egal von wem) geschaut, ob die entsprechende IP schon in der Datenbank vorhanden ist, wenn ja, wird die Zeit wieder heraufgezählt (zum Beispiel 3 Minuten (180s)). Für die Online Abfrage wird nun einfach geschaut, wieviele Datensätze in der Datenbank vorhanden sind. Die Datensätze, wo der Timestamp nach 3 Minuten nämlich Abgelaufen ist (time() > $db->last_click) werden gelöscht. Ist eigentlich relativ einfach, nur komm grad aus der Schule und hab mich mit Kaffee vollgepumpt und meine Grammatik ist, öh, äh, ach, ich weiß auch nicht...
2.)
Realisierung per Ajax
Vorteile: Überprüfung geschieht in Echtzeit, Realer/Exakter Wert
Nachteil: Benutzer braucht Javascript, Komplizierter zu Programmieren (helf dir gerne

)