Php/sql : voir si quelqu'un est loggé

Résolu/Fermé
zephyrangel - Modifié par zephyrangel le 29/04/2010 à 13:47
Tryphon71 Messages postés 41 Date d'inscription jeudi 29 avril 2010 Statut Membre Dernière intervention 26 juillet 2010 - 29 avril 2010 à 15:39
Bonjour

J'apprends actuellement le php et comme exercice j'ai créé un petit site où j'aimerais entre autre que l'utilisateur puisse se logger et voir qui est actuellement en ligne.

Le moyen que j'ai trouvé pour voir si quelqu'un était en ligne est de mettre un champ "online" dans la base de donnée et le mettre à 1 quand il se logge, et à 0 quand il se délogge. Je ne sais pas du tout si c'est comme ça que je suis sensé faire, mais en tout cas ça fonctionne.. sauf pour un point;
Le problème c'est que je ne sais pas comment ni même s'il est possible de mettre ce champ à 0 si l'utilisateur ne se délogge pas manuellement (expiration de sa session)

Quelqu'un sait comment faire ça?
A voir également:

4 réponses

Tryphon71 Messages postés 41 Date d'inscription jeudi 29 avril 2010 Statut Membre Dernière intervention 26 juillet 2010 3
29 avril 2010 à 14:17
Salut,

penche toi du coté des sessions, avec une variable du type

$_SESSION['logge'] = 1 // Si il est loggé
$_SESSION['logge'] = 0 // Si il n'est pas loggé

Tiens un ptit tuto si tu connait pas :
https://apprendre-php.com/tutoriels/tutoriel-14-les-sessions.html

Pour l'expiration de session tu peut toujours aller jeter un oeil du coté du javascript ici :

http://www.asp-php.net/ressources/bouts_de_code.aspx?id=480
0
ok mais si je ne me trompe pas la variable session ne permettra pas de voir si quelqu'un d'autre est en ligne

le javascript c'est une idée, je ne connais pas encore suffisamment pour savoir comment faire ça mais je devrais voir ça d'ici peu. Je suppose qu'il y a moyen de mettre la base sql à jour au bout d'un certain temps ou lors de la fermeture du navigateur. Par contre si un utilisateur plante je pense que la base de données sql ne sera pas mise à jour autrement dit que son statut restera "en ligne". C'est pour ça que je me disais qu'il fallait plutôt un script côté serveur que côté client.
0
Tryphon71 Messages postés 41 Date d'inscription jeudi 29 avril 2010 Statut Membre Dernière intervention 26 juillet 2010 3
29 avril 2010 à 15:08
Pour asvoir qui est en ligne va voir de ce coté la ;)

https://www.developpez.net/forums/d139168/php/langage/savoir-personne-ligne/

Par contre pour ton autre problème, je n'ai pas de solutions a te proposer ...
A mon avis tu sera obligé de passer par de l'ajax ...
0
nikel le lien, j'avais pas pensé à stocker l'heure dans la base de donnée

donc chaque fois qu'un membre se connecte je mets le champ "online" à 1 et je stocke l'heure, chaque fois qu'il charge une page je mets l'heure à jour, et quand quelqu'un d'autre essaie de vérifier s'il est en ligne il devra vérifier l'heure en plus de vérifier le champ "online"

et quand j'aurai vu le javascript je pourrai faire un script qui met l'heure à jour tous les x temps tant que l'utilisateur garde sa fenêtre ouverte

parfait, merci beaucoup
0
Tryphon71 Messages postés 41 Date d'inscription jeudi 29 avril 2010 Statut Membre Dernière intervention 26 juillet 2010 3
29 avril 2010 à 15:39
Voila ;)

De rien, bonne fin de journée, pense a mettre résolu pour les prochains qui se poseront cette question .
0