|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Bonjour,
Je fais l'admin de mon site. Je veux pouvoir suspendre les comptes. Donc j'ai bloqué la possibilité de s'identifier durant x jours. Mais si le gars surfe encore au moment où j'ai décidé de suspendre son compte, la suspension doit prendre effet immédiatement et non à la prochaine identification. Donc je voudrais faire sauter sa session en cours, pour qu'il soit déconnecté dès qu'il change de page. Comment puis-je faire ? |
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Cela requiert une vérification à chaque page ou au moins toutes les X secondes de cette suspension (implémentée en base de données je suppose) puis d'utiliser la fonction session_destroy.
Julp. |
|
|
00
|
|
|
#3 |
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
C'est justement ce que je voulais éviter. J'avais espérer cliquer sur un bouton et désintégrer le membre indélicat. Ou au moins à défaut détruire sa session sans recourir à des updates et autres select.
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 1 249 ![]() |
Je vois deux solutions.
1) Dans ta table user, rajoute un champ sessionValide. Quend tu renvoies un membre, tu passes ce champ à 0. A chaque page, tu vérifies ce champ. S'il est égal à 0, tu vires. 2) Très tiré par les cheveux. Tu mets en bdd l'id de session du membre. Quand tu le renvoies, tu effaces le fichier correspondant dans le dossier de session. |
|
|
00
|
|
|
#5 |
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Je préfèrerai la deuxième solution (même si je ne vois pas comment virer l'id voulu du fichier de session). Mais si il y a des histoire de session_regenerate_id(), ça ne fonctionnera pas.
|
|
|
00
|
|
|
#6 | |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Julp. |
|
|
|
00
|
|
|
#7 |
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Oui mais j'aurais voulu le faire sans passer par des requêtes vers la base de donnée.
|
|
|
00
|
|
|
#8 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 1 249 ![]() |
Citation:
Le plus simple, à mon avis, est la 1ère solution, et elle est imparable. Pour la 2ème : chaque session est enregistrée dans un répertoire temporaire, sous la forme d'un fichier texte propre à chaque session. Le nom de ce fichier est formé à partir de l'id de session. Si on le connaît, il suffit de supprimer ce fichier pour tuer la session. Mais c'est tiré par les cheveux car cela demande des manips tordues au lieu de faire un simple session_destroy() à la première page affichée par l'user, ce qui est quand même plus simple ! |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com