begin process at 2012 05 30 23:05:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

eviter double session?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

eviter double session?

lundi 13 août 2007 à 14:03:15 | eviter double session?

agparchitecture

Bonjour à tous, je suis en train d'implémenter une zone d'administration avec authentification par session. Le problème c'est que j'aimerais bien qu'une seule personne puisse s'y connecter. En effet, il faudrait eviter que deux administrateur ne puisse pas modifier les base de donnée en même temps.

Le problème c'est que je ne sais pas comment aborder cette solution.

Merci de bien vouloir me consacrer un peu de votre temps.

lundi 13 août 2007 à 14:21:30 | Re : eviter double session?

Evangun

Salut,

tu dois enregistrer quelque part dans ta base que quelqu'un est actuellement connecté (noter la date/heure), et donc pouvoir empêcher une autre connexion.

Ca c'est facile, ce qui l'est moins c'est savoir quand cette personne se déconnecte.
Pour ça tu peux demander à ce que la personne se déconnecte, mais tout le monde oublie de le faire.
Tu peux donc plutôt enregistrer la date du dernier signe de vie de l'admin connecté. Si ce dernier signe de vie est supérieur à 20 minutes (absence présumée) et que quelqu'un d'autre se connecte, tu retires le droit de modifier au premier pour donner au second.

Dernière astuce pour avoir un signe de vie régulier si la personne est connectée mais qu'elle ne fait pas de rechargement de page : Ajax.

Si j'ai pas été clair sur qqch, demande :)


lundi 13 août 2007 à 14:38:07 | Re : eviter double session?

agparchitecture

1. Enregistrer dans la base de donnée ou dans un fichier pas de problème.

2. Un lien de deconnection est prévu mais je ne vois pas comment voir si il y a un signe de vie. Comme la session est une variable globale est ce que via un script du type

        session_start();
        $_SESSION['admin'] = 1;
tous ceux qui ce connecte on la même variable ou une nouvelle est créer à chaque fois?

Ce qui me permettrait de faire une vérification au moment du login avec quelque chose du type

if (isset($_SESSION['archigpadmin']))
    { //session existante }

2bis Quelle est la fonction qui permet de définir la durée d'un session (pas le courage de chercher sur google )

3 Je ne connaix pas ajax. Qu'est ce que c'est



lundi 13 août 2007 à 15:02:33 | Re : eviter double session?

Evangun

Réponse acceptée !
1) ok
2) oui bien sûr chaque connecté doit avoir son propre login ! sinon comment veux-tu distinguer 2 personnes connectées. Et à chaque rafraissement de page / requete ajax tu fais un UPDATE dans ta base pour indiquer le dernier signe de vie
3) c'est dans php.ini, donc sauf serveur dédié, tu ne peux pas.
4) (pas le courage de chercher sur google ) --> si t'as pas le courage de chercher, sur ce forum on n'aura pas le courage de te répondre, ya pas marqué Lycos ici
lundi 13 août 2007 à 15:15:39 | Re : eviter double session?

agparchitecture

Merci
4) session.lifetime = 0  mais impossible car pas de serveur dédié...

Est-ce que tu peux me confirmé que lorsqu'on utilise les variables de session un cookies est crée avec les valeur de la session.

Je vais cherché du coté dchaque rafraichissement de page et suppression de session du premier connecté.
lundi 13 août 2007 à 15:29:53 | Re : eviter double session?

Evangun

A moins d'enregistrer dans ta base l'ID de session du premier, tu ne pourras pas supprimer sa session.

Non, le plus simple est de le laisser connecté, mais s'il veut revenir après la période des 20 mn (qui est au passage la période d'expiration des sessions par défaut, ça devrait éviter des soucis), ça bloque. Pour ça il suffit qu'à chaque nouvelle page où il va, avant d'afficher quoi que ce soit ça vérifie si c'est toujours lui qui est enregistré comme "admin en cours".

Oui pour le cookie de session, il est créé automatiquement, mais il ne contient que le session_id (à peu de choses près), pas les variables de $_SESSION. Lui il contient les variables de $_COOKIES.
lundi 13 août 2007 à 15:44:06 | Re : eviter double session?

agparchitecture

Il y a quand même quelque chose que je ne comprend pas???? Quand tu dis : "mais s'il veut revenir après la période des 20 mn, ... ... ça bloque"  En fait il faut que je fasse deux verifications :
        -1. La première pour voir si il est connecté
        -2. si il y est depuis moins de 20min?

Parce que ma période d'expiration des sessions par défaut est (phpinfo ()) :

session.cache_expire180180

Est-ce qu'on ne peut pas faire un compteur de personne connecté (type:http://www.phpcs.com/codes/NOMBRE-SESSION-ACTIVE-CONNECTES-SUR-SERVEUR_13196.aspx) et si il y en a un on empeche la page login de ce charger?

En tout cas merci de ta patiente
lundi 13 août 2007 à 15:54:44 | Re : eviter double session?

Evangun

Non je pense qu'il vaut mieux que login et autorisation de modifier soient 2 choses distinctes. Donc oui, 2 vérifications :
- la première juste vérifier qu'il est loggé (avec une simple variable de session)
- la deuxième requiert un appel à la base de données pour voir si qqn est déjà en train de modifier.

Moi ce que j'avais fait pour un client une fois c'était une "salle d'attente" : tu peux te connecter, mais si qqn est déjà en train de faire des modifs, ça te dit qui c'est, une estimation du temps avant qu'il ait terminé, et s'il y a d'autres personnes avant toi qui ont aussi demandé à faire des modifs (une file d'attente en fait).
lundi 13 août 2007 à 16:04:01 | Re : eviter double session?

agparchitecture

Oui mais comment je peux récupérer sa variable de session pour voir si il est connecté.  c'est ca que je ne comprend pas en fait. Comment peut-n récupérer des variable de session démarré depuis deux ordinateur différent?
lundi 13 août 2007 à 16:14:26 | Re : eviter double session?

Evangun

Réponse acceptée !
Non ça tu ne peux pas, tu notes dans ta base de données qu'il est connecté. Tu notes son login, et la date de son dernier signe de vie.

1 2

Cette discussion est classée dans : problème, temps, session, double, eviter


Répondre à ce message

Sujets en rapport avec ce message

Problème de session ? [ par phpwankenobi ] Salut à tous...Voici un code que j'utilise pour garantir la confidentialité de la partie d'un site :session_start();if (!session_is_registered('login' problème avec les session [ par meridius ] Hello,Voilà, j'ai un problème avec ma session... la création se déroule bien, mais quand je navigue dans ma session page par page et que soudainement problème incompréhensible [ par iomega ] Bonjour à tous j'ai toujours le même problème lorsque je passe de page en page j'ai l'impression que je perd la session et donc je suis redirigé sur l ::Session's anarchie mdr [ par kodiask ] Voilà j'ai encore un problème mdr, j'ai une page (index.php) avec des include dedan, et sur cette page index j'ai un formulaire sidentifier, ( les cod session + formulaire [ par Orcus ] G un problème très simple, mais je n'arrive pas à le résoudre et je ne vois pas le problème ! J'ouvre ma page a.php (aucun problème), je remplie le fo Problème de session avec .htaccess [ par tazmania37 ] Salut à tous !Alors voilà, j'ai un petit problème tout con !Sur mon site j'ai une section qui est protégé par un .htaccess.Jusque là, tout va bien, qu Problème chez free : switch/session ?! [ par Linkman ] Bonjour!Je suis hébergé par free et j'ai un petit (gros lol) problème.Quand on clique sur un lien, la plus part du temps on est redirigé vers la page a l'aideuh ! probleme avec les sessions [ par calopsfr ] je sais pas sic 'est mon hebergeur qui pose problème (free provisoirement) ou si je suis tout simplement pas malin, mais j'ia un problème avec les ses Fatal error session_start() [ par ftug ] bonjour,j'ai depuis un certain temps une erreu qui aparait de temps en temps ( pas tres technique copmme therme mais c'est bien le cas, 1/10 environs) problème de session ! [ par meridius ] Hello tout le monde,je suis en train de construire un "Espace membre" et j'ai un petit souci au moment du login. Donc, à chaque login, ce message appa


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales