SESSION_ID : recherche d'un ID de session

SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005 - 28 juil. 2005 à 10:56
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 28 juil. 2005 à 14:39
Bonjour à tous,

Je cherche à vérifier si un utilisateur connecté à mon site possède un Identifiant de session déterminé.

J'ai trouvé sur la doc PHP, la fonction msession_find(), mais je ne sais pas l'utiliser.
Peut-etre est-il possible d'utiliser msession_list ou msession_listvar ???

Je suis à la recherche du code souce me permetant de résoudre mon problème.

@+
Chris

29 réponses

SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 13:19
Je veux bloquer l'accès à des enregistrements d'une base de donnée, aux autres utilisateurs, quand un utilisateur est en train les utiliser.
Donc l'idée était de créer un enregistrement de blocage avec le SESSION_ID, et d'autoriser la suppression de cet enregistrement de blocage quand le session_id n'existait plus.

@+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
28 juil. 2005 à 13:23
Bah pourquoi tu ne créerais pas un fichier '.lock' qui, si il est
présent, empêcherait l'accès à la base ? ensuite toutes les 2 minutes
par exemple ce fichier n'est plus valide (tu regardes donc le
filemtime() du fichier '.lock')

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 13:32
Je vais vous donner quelques détails en plus :

Il s'agit d'une gestion de stock :

Un utilisateur A décide de prélever la marchandise MA_1 en quantité de 5.
Tant que cet utilisateur n'a pas validé l'expédition de cette marcandise, je doit bloquer les autres utilisateurs, pour que cette dernière ne soit pas visible en dispo.

Si l'utilisateur quitte Inetrnet Exploreur avant validation de l'expédition , je doit supprimer l'enregistrement de blocage.

C'est pour cette raison que je souhaitais gérer cela avec les SESSION_ID.
@+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
28 juil. 2005 à 13:37
"Si l'utilisateur quitte Inetrnet Exploreur avant validation de l'expédition , je doit supprimer l'enregistrement de blocage."



Tu ne peux pas faire ça...



La solution la plus efficace est d'utiliser un fichier qui a un temps de validité très court...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 13:43
Explication suite...

En fait quand un utilisateur veux accéder à une marchandise, je regarde si il n'existe pas d'enregistrement de blocage lié à celle-ci.
Si un enregistrement de blocage(contenant le SESSION_ID du bloqueur) est trouvé par le nouvel utilisateur, alors, je regarde si le session_id de l'enregistrement de blocage existe toujours dans le sessions en cours du serveur.
Si oui, alors je ne fais rien, et le nouvele utilisateur ne peux accéder à la marchandise.
Sinon, je supprimer l'enregistrement de blocage, et le nouvel utilisateur accède à la marchandise.

@+
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
28 juil. 2005 à 13:44
est-ce que ça marcherait avec des transactions ?

cf. http://fr.php.net/mysql



tu ouvres une connection à la base à l'aide d'un BEGIN, tu "propages"
ta connection à travers une variable de session, et lorsque c'est fini
tu fais un COMMIT ou un ROLLBACK pour confirmer ou non ...



je n'ai pas testé, mais ça semble plus correpondre à tes besoins...
0
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 13:56
Je ne peux le faire avec des transactions, car je ne veux pas faire croire au nouvel utilisateur que la marchandise est dispo alors qu'il y a 95% de chance pour que le premier utilisateur termine sa connexion en validant l'expédition.

Mon seul problème réside dans le fait qu'il faut que je libère le blocage en cas de non validation de l'expédition, pour que la marchandise puisse à nouveau etre visible de tous les utilisateurs.

@+
0
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 13:58
Autre détail,

Je ne peux utiliser une tempo pour suppimer le blocage, car je ne connais pas le temps nécessaire à l'utilisateur pour valider l'expédition.

@+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
28 juil. 2005 à 14:39
Et bah dans ce cas, désolé mais je n'ai pas de solution à te proposer, tu ne pourras jamais avoir un truc de fiable avec ça

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous