En PHP, il n'y a pas de moyen de savoir exactement.
Je pense que le meilleur moyen est d'avoir une Base De Données, resemblant à :
Et à chaque chargement de page :
- Si il n'y a pas de ligne avec l'IP de l'utilisateur dans la BDD, on en créé une ;
- Si il y a une ligne avec l'IP de l'utilisateur dans la BDD, on l'update (update la timedate de dernière vu) ;
- On supprime les lignes qui sont plus vieilles que le temps que tu considères nécessaire pour voir l'utilisateur comme parti du site (sa peut dépendre du site, e.g: sur un site avec des articles, les utilisateurs vont passer plus de temps sur une page que sur un site d'annonce)
Tu pourrais même ajouter une colonne last_page_seen qui contiendrait la dernière page vu par l'utilisateur, pour, par exemple, pouvoir lister dans le footer de la page le nombre d'utilisateurs sur la page.
Pour récupérer l'IP, premier lien que j'ai trouvé.