SaveC
Messages postés13Date d'inscriptionlundi 3 mars 2003StatutMembreDernière intervention28 juillet 2005
-
28 juil. 2005 à 10:56
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 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.
SaveC
Messages postés13Date d'inscriptionlundi 3 mars 2003StatutMembreDernière intervention28 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.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 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')
SaveC
Messages postés13Date d'inscriptionlundi 3 mars 2003StatutMembreDernière intervention28 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.
@+
SaveC
Messages postés13Date d'inscriptionlundi 3 mars 2003StatutMembreDernière intervention28 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.
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...
SaveC
Messages postés13Date d'inscriptionlundi 3 mars 2003StatutMembreDernière intervention28 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.