Identification des visiteurs

Résolu
Darkkrab Messages postés 3 Date d'inscription dimanche 10 décembre 2006 Statut Membre Dernière intervention 10 décembre 2006 - 10 déc. 2006 à 17:38
Darkkrab Messages postés 3 Date d'inscription dimanche 10 décembre 2006 Statut Membre Dernière intervention 10 décembre 2006 - 10 déc. 2006 à 21:33
Bonjour.
Je cherche depuis deux jours comment faire pour identifier les visiteurs de mon site.

J'ai une page de connexion qui permet de se connecter avec son nom d'utilisateur et son mot de passe.
J'ai un session_start() au début de chaque page, ce qui me permet d'afficher le nom de l'utilisateur sur chaque page avec $_SESSION['pseudo'];.

Le problème est : comment afficher le pseudo des autres membres connectés ?
J'ai trouvé pas mal de sources, mais malheureusement toujours avec des explications ou commentaires incomplets. Je voudrais juste que quelqu'un m'explique une méthode.

Merci d'avance.

4 réponses

Darkkrab Messages postés 3 Date d'inscription dimanche 10 décembre 2006 Statut Membre Dernière intervention 10 décembre 2006
10 déc. 2006 à 21:29
J'ai trouvé une solution qui à mon avis est optimale !

Dans la table des inscrits (enregistrés), j'insère une colonne last_request_time de type BIGINT pour y mettre un time().
A chaque fois qu'un visiteur se "loggue" et est reconnu, la valeur de last_request_time le concernant prend la valeur actuelle de time().

Reste plus qu'à faire une boucle. Tous les membres de la table des inscrits dont la valeur de last_time_request remonte à moins de 5 minutes (environ) sont connectés.
echo...
3
cs_Springer Messages postés 85 Date d'inscription lundi 14 juillet 2003 Statut Membre Dernière intervention 14 mars 2007 1
10 déc. 2006 à 19:35
Bonjour,
ton sujet m'a interressé et j'ai regardé ce que je trouvais dessus.
Pour ce faire, tu dois passer par une table Sql ou un fichier plat (attention c'est plus lourd à gérer dans les requètes, nécessite une parfaite connaissance des tableaux et des fonctions qui s'y rattache en php.
le principe, à chaque connection tu incrèmentes une table ou un fichier : exemple avec un fichier plat
$chm = "chemin_acces_fichier";
$ancien_contenu = file($chm);
$nouveau_contenu = $ancien_contenu + 1;
$pointeur = fopen($chm, "w+");//w+ efface ce qui est écrit
fwrite($pointeur, $nouveau_contenu);
fclose($pointeur);
Tu peux aussi récupérer l'adresse ip de ton visiteur
$ip_visiteur = $_SERVER['REMOTE_ADDR'];
et la traiter si ton visiteur à une ip fixe et que tu la connais (cf bdd)
sinon si c'est pour gérer un forum en temps direct
il faut que tu passes par un formulaire de connection;
login + password, que tu vérifies dans ta base qu'il est bien inscrit et que tu le redirige ensuite vers le forum.
Tu l'inscripts dans une table des connectés, avec son pseudo et toutes les infos que tu as sur lui et que tu veux afficher, que tu as récupérées en vérifiant son pseudo et pass (tout en même temps).
Le nombre d'élément de la table te donne le nombre de connectés à son entrée.
Tu peux aussi, en faisant une boucle vérifier si ils sont tous bien connectés, et effacer ceux qui le ne sont plus.
Puis tu affiches le résultat:
Nombre de connecté : (nombre d'élément de la table)
(optionnel : la liste des pseudos)
et n'oublie pas de les effacer .
Une autre solution, mais à tester, à chaque connection tu crées une variable de session, par défaut le systeme enregistre un fichier dans le dossier temp, qui est du même niveau que ton dossier racine.
ex
temp
www
      index.php
      etc.php
donc comme c'est un dossier tu peux le lister, et récupérer les id de session de chaque connecté, mais c'est alèatoire et te demande plus de script.
courage
0
cs_Springer Messages postés 85 Date d'inscription lundi 14 juillet 2003 Statut Membre Dernière intervention 14 mars 2007 1
10 déc. 2006 à 19:36
0
Darkkrab Messages postés 3 Date d'inscription dimanche 10 décembre 2006 Statut Membre Dernière intervention 10 décembre 2006
10 déc. 2006 à 21:33
P.S. :
- Aucune table supplémentaire à créer,
- Seulement deux requêtes SQL à insérer (mettre à jour time() lors de la connexion, et lire ceux dont le time() a moins de 5 minutes)
- Code qui tient en 25 lignes chez moi.

Je vais poster une source.
0
Rejoignez-nous