Probleme session

ivan33 Messages postés 2 Statut Membre -  
Nabla's Messages postés 20731 Statut Contributeur -
bonjour et merci de maider.voila mon pb

jai fait un script qui me permet de me deconnecter d'une page une fois le bouton deconnecter appuyé mais je pb est ke si la personne ne clicke pas sur deconnecter je veut pouvoir savoir si il a quitter le site .

je dis ca car jai fait un script qui compte les personnes inscrits du site en modifiant le l'etat a 1 et donc si la personne ne clicke pas sur deconnexion et quitte juste le site je me retrouve avec un etat inchanger et donc je veut le gerer merci

4 réponses

pretexte Messages postés 9 Statut Membre 1
 
Bonjour,
Escuses moi mais tu est dur a comprendre, bref quelques questions:

Es tu en local (en test) ou sur le site web lui même ?
ton serveur est'il Apache ?
As tu PHP et quelle version , pareil pour Mysql ?
As tu accés a php.ini

Avec ces informations je pourrais te donner une solution !
0
Nabla's Messages postés 20731 Statut Contributeur 3 194
 
dans ta base de données, dans la table "users", tu mets un champs "dernier signe d'activité".
sur toutes tes pages, tu insères un petit script ajax qui telecharge une page php toutes les 2 minutes par exemple. Cette page php mettra a jour le dernier signe d'activité.

comme ca, tu n'as plus qu'à détecter les gens qui ont donné signe de vie il y a moins de 2 minutes
0
ivan33 Messages postés 2 Statut Membre
 
bonjour ou bonsoir et merci pour vos propositions

pour pretexte
je suis en test en local, jutilise wamp la derniere version.

pour nabla's
stp tu pourrai maider avec le code. suis pas tres bon en ajax, jai quelques pb.

merci
0
pretexte Messages postés 9 Statut Membre 1
 
Parfait, il te suffit de créer une table suivi avec comme zones

LEnom_visiteur
LAsessionID
LEtimestamp

a chaque fois qu'un visiteur passe sur une page tu fais ceci ....

1) calcul le timestamp actuel
$LeTemp=getdate();
$Actuel=$LeTemp['0']; // c'est le timestamp actuel

2) parcours TOUTE LA TABLE
donc
$LEnom_visiteur
$LAsessionID
$LEtimestamp

pour chaque data
$Duree=$Actuel-$LEtimestamp;
alors:

si $Duree<300 // 5 minute
c'est bon on garde le data
si $LAsessionID = ID de session du visitur, alors on remplace
son LEtimestamp par $Actuel
==============================

si $Duree>=300 // 5 minute
on supprime le data
si $LAsessionID = ID de session du visitur, alors on vide sa session
et on lui en recrée une
on recree un data avec ces infos
0
Nabla's Messages postés 20731 Statut Contributeur 3 194
 
voila, ca c'est le principe de base.
La partie ajax permettant juste de détecter que la personne est encore connectée, même si elle laisse sa fenettre ouverte sans la toucher
0