|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() Inscription : janvier 2007 Messages : 915 ![]() |
Bonjour, dans un script, je génère des sessions qui sont numérotées.
J'enregistre les sessions avec : Code :
Ma question, comment faire pour savoir si une session est encore active? J'ai essayé Code :
if (!session_is_registered($record['numsession'])) Moi je voudrais tester toutes les sessions coté serveur et savoir si un utilisateur est encore connecté à cette session. Peut être en lisant dans le dossier sessions??? Merci de votre aide. |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Il faudrait définir ce qu'est une session active
PS : session_register( ) est déprécié depuis pas mal de temps et obsolète depuis PHP 5.3
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Inscription : janvier 2007 Messages : 915 ![]() |
En faite, sur un site je propose de tester un plugin pour tinymce. Ce plugin permet d'uploader des images sur le serveur.
Au chargement de la page, je créer une clé je créer un dossier temporaire avec le numéro de clé dans ce dossier temporaire j'ajoute 3 photos histoire de remplir un peut. Ensuite, j'ajoute la clé dans une BDD, et je voudrais démarrer une session portant se numéro de clé. Lorsqu'un autre utilisateur vas sur le site, mon script récupère toutes les clés enregistrées dans la base. Ces clés correspondent donc aux différentes session créées par les utilisateurs. Ensuite, je veux analyser chaque clé pour savoir si un utilisateur est encore connecté dessus. Si personne n'est connecté, je supprime automatiquement l'enregistrement dans la base puis le dossier temporaire... |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Citation:
Comment définis-tu un utilisateur connecté ou non-connecté ?
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Inscription : janvier 2007 Messages : 915 ![]() |
Merci a toi de Prendre du temps pour repondre!
En faite il n'y a pas de Login pour gerer les utilisateurs... Je veux juste que quand quelqu'un arrive sur la page d'essais du plugin, un dossier temporaire soit créé. Au depart, je n'avais pas pensé a ca et du coup tout le monde bricolaient dans le meme dossier temporaire... Si un utilisateur ajoutait une photo pour faire des test, les autres pouvaient tout voir! Le dossier temporaire commun a tous était vidé a chaque ouverture de la page... Or je souhaite que si plusieurs utilisateurs se connectent sur la page de test, il y ai un dossier temporaire pour chaque personne. J'arrive a le faire en générant une clé, mais mon soucis c'est de supprimer automatiquement les dossiers temporaire apres qu'un utilisateur quite la page ou ferme le navigateur... Merci de ton aide. |
|
|
00
|
|
|
#6 | ||||
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Citation:
Si non suppression du dossier temporaire. Tu peux ajouter un flag pour ne pas relancer la procédure inutilement à chaque hit. Citation:
Code :
- Supprimer les dossiers temporaires dont on ne retrouve pas le nom parmi les fichiers de session - Supprimer les dossiers temporaires dont le fichier de session est trop vieux
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
||||
|
|
00
|
|
|
#7 | |
|
Membre actif
![]() Inscription : janvier 2007 Messages : 915 ![]() |
Citation:
Sinon j'avais fait une bidouille pour supprimer les sessions créées il y a plus de trois heures. J'avais ajouté un champ dans ma table format DATETIME a la création du dossier temporaire j'ajoutais NOW dans ma table... Ensuite, a chaque chargement de page je viens analyser chaque enregistrement et si le DATETIME >3h alors on supprime... Mais ta solution que j'ai mis en QUOTE me conviendrais mieux... Merci! |
|
|
|
00
|
|
|
#8 | |||
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Citation:
Code :
http://php.net/manual/fr/reserved.variables.server.php
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|||
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Inscription : janvier 2007 Messages : 915 ![]() |
Ok je comprends, mais si un user est sur la page et qu'il ferme le navigateur???
|
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Tu ne pourras pas détecter de manière fiable la fermeture du navigateur.
Donc il faut laisser mourir la session comme tu le fais déjà...
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|
|
00
|
|
|
#11 |
|
Membre actif
![]() Inscription : janvier 2007 Messages : 915 ![]() |
Je vais faire un mix de mon idée de depart et de la tienne!
Je limite la session a 3 heures avec un decompte visuel pour l'utilisateur. Au bout de 3heures je reload la page si le user est encore dessus. Sinon, lorsqu'un autre utilisateur se connecte a la page, je verifie les enregistrements de la base et je supprime tout ce qui est supérieur a 3h. En plus, sur chaque page je ferais peut etre un appel a la fonction de purge... Quoi que c'est peut etre pas necessaire... A moins que je mette en place une table nomée LastPurge... A chaque purge je met a jour cette table, et si la derniere purge remonte a moins de 3heures alors on n'execute pas le script... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com