Bonjour,
Bon, déjà, le protocole HTTP est en mode « non connecté », ce qui signifie que savoir si quelqu'un est connecté ou non n'a, stricto sensu, pas lieu d'être.
En règle général, on se définit un délai par rapport à la dernière action de l'internaute. Par exemple, on peut dire que si un internaute a changé de page dans les 5 dernières minutes, alors il est connecté. Ou encore, si sa session est active sur le serveur.
Pour répondre à ton problème, je vois deux moyens.
1 - utiliser une table dans la base de données, qui contienne les ID de tes utilisateurs, et la date de dernière action. Dès qu'il change de page, hop, tu la modifies. Ensuite, tu fais une requête dans cette table qui va chercher tous les utilisateurs qui ont fait une action dans les X dernières minutes.
Ca peut paraître un peu lourd, mais si tu indexes bien ta table suivant la date, et surtout si tu n'as pas 10 000 visiteurs par jour, il n'y a pas de raison que ça pose problème.
2 - au niveau serveur. J'ai fait une petite recherche sur le site www.php.net, mais je n'ai pas trouvé de fonction ou variable globale qui soit capable de donner des informations sur les autres sessions que celle de l'utilisateur courant. C'est peut-être fait exprès, pour des raisons de sécurité, encore que j'en doute... C'est peut-être aussi moi qui n'ait pas bien regardé !
Sinon, il existe des fora gratuits, comme phpBB ou d'autres, qui le font : tu peux t'amuser à les télécharger et essayer de comprendre comment ça fonctionne.
Xavier