|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 7 ![]() |
Bonjour à tous,
Comme indiqué dans le titre, j'aimerais savoir comment demander à un serveur Apache si une session existe, à partir d'un identifiant. J'ai trouvé quelques sujets sur ce thème, mais sans réponse vraiment satisfaisante. Pour vous expliquer le contexte, j'ai besoin de cette fonctionnalité car je développe un site web permettant aux utilisateurs de modifier du contenu (des articles par exemple). Par sécurité, je veux mettre en place un système de "protection en écriture", pour qu'au plus un seul utilisateur puisse modifier un contenu. Dans l'absolu, l'utilisateur obtient l'accès à la ressource en cliquant sur "ouvrir", et la restitue en cliquant sur "fermer". Mais bien évidemment, rien ne l'empêche de quitter sans rien faire, bloquant la ressource indéfiniment. Pour palier à ce problème, je pensais créer une table associant chaque ressource bloquée à un identifiant de session. De cette façon, il est possible de vérifier si la ressource est légitimement bloquée ou non. Et c'est là que vous intervenez ! Merci de m'avoir lu, et merci d'avance pour votre aide ! |
|
|
00
|
|
|
#2 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Tu peux controler l'existence du fichier de session ; malheureusement, il n'est pas supprimé à la destruction de la session.
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 7 ![]() |
Bonjour et merci pour ta réponse !
Hum, évidemment, ce serait trop simple Je me suis un peu documenté, et j'ai cru comprendre que les fichiers de session étaient nettoyés plus ou moins aléatoirement. Existe-t-il un moyen de "forcer la main" au serveur ? |
|
|
00
|
|
|
#4 | ||
|
Membre actif
![]() Fabrice AgnelloDéveloppeur informatique Inscription : octobre 2010 Messages : 76 ![]() |
vous avez un moyen un peu alambiqué, mais qui fonctionne bien, qui vous permettra de nettoyer tout ce qu'a pu faire votre utilisateur lors de sa session.
En javascript, trappez l'évenement de fermeture de votre fenêtre. Si cet évènement est levé, faites un appel ajax au serveur et là, faites le grand nettoyage. si vous utilisez jquery, le code suivant devrait suffire. A vous ensuite de l'adapter et de développer le nettoyage côté serveur. Code :
Je vous laisse développer ça. En JQuery, c'est trivial. En javascript pur, un peu moins, mais pas loin. |
||
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : mars 2007 Messages : 274 ![]() |
Une méthode alternative (qui n'est pas parfaite non plus) serait d'enregistrer pour chaque session la date de la dernière activité. Et donc de définir un temps pour lequel on choisi de dire que la session n'est plus active.
Et donc prévoir un processus à part (en cron par exemple) qui irait nettoyer les contenus bloqués par une session non active. Au moins ce processus ne se base pas sur du js/navigateur.
__________________
Smiley de Plomb 2009 Anciennement FrancoisIT |
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Ahmed Ingénieur systèmes et réseaux Inscription : octobre 2007 Messages : 16 ![]() |
Bonjour,
Vous pouvez récupérer l'ID des sessions à l'aide de la fonction session_id(), et ensuite faire ton traitement. Bonne chance |
|
|
02
|
Copyright © 2000-2012 - www.developpez.com