03-12-2008, 04:32 PM
(03-12-2008, 03:18 PM)keke a écrit : Rygnes > j'ai peur de pas comprendre. Tu cherches à faire un système met en variable de session le fait qu'un joueur fait une quelconque activité et doit donc refuser toute autre activité ...
En plus d'être très lourd à l'usage et à la programmation ... je pense pas que ça résolve le problème. L'information doit être centralisée.
J'ai beau relire ton message et le code fourni ... je comprends pas la question ^^. Je vais essayer d'y répondre.
Je pars de l'hypothèse que j'ai compris le problème tel que ré-écrit plus haut et je vais montrer un contre exemple.
J'ouvre 2 navigateurs indépendants. Appellons les IE et FF.
Je me connecte à ton jeu avec IE : Ma variable de session activité est à False, je ne bosse pas.
Je me connecte à ton jeu avec FF maintenant : ma variable de session activité est à False, je ne bosse pas.
Avec IE, je quémande un travail : je bosse. Ma variable de session IE est donc maintenant à True.
Je rafraichis ma page avec FF ... et là comme ma variable de session est à False ... je peux continuer à demander du travail.
=> Anomalie ...
Typiquement, l'information "je travaille" doit être en base de donnée ! tu dois vérifier avant chaque affichage de proposition de job si ton personnage travaille ou non (et donc s'il peut accepter du boulot ou pas). Tu dois faire la même vérification après que le joueur ai cliqué sur le bouton 'Postuler'.
Je veux pas balancer ^^, mais il me semble que Sephi-chan a fait de très belles réponses à ce sujet sur ce même forum !
Kéké qui n'arrive pas à lire ton code.
Effectivement, tu n'as pas compris mais c'est de ma faute.
Tu cherches l'intérêt de ce système là où il n'est pas.
Il y a une mise à jour BDD, je n'ai pas confiance dans les sessions, il ne s'agit là que d'un raccourci (nous parlions d'optimisation).
Je reprends ta démarche.
Je me connecte avec IE : Ma variable de session activité est à False, je ne bosse pas.
Je me connecte à ton jeu avec FF maintenant : ma variable de session activité est à False, je ne bosse pas.
Avec IE, je quémande un travail : je bosse (mise à jour de la BDD). Ma variable de session IE est donc maintenant à True.
Je rafraichis ma page avec FF ... et là comme ma variable de session est à False le script va interroger la BDD (ce qu'il n'aurait pas fait si la variable de session était à TRUE, il s'agit d'une petite économie de ressource) ...
C'est plus clair ?
Roworll, pourquoi éviter les multi-sessions ?
Tu te bases dans un cadre où tu stockes des données sensibles ?
L'amphore à métaphore...