(03-12-2008, 03:18 PM)keke a écrit : Et moi je suis persuadé que ton système n'est pas le plus efficace. Sans offense bien évidement car j'ai commencé comme toi et que sans m'en apercevoir un type avait réussi à "filouter" ma BDD ... Dans mon bonheur, ce "filou" a eu la maladresse de pas faire gaffe ... il s'était donné 5000 pièces d'or, mais avait perdu 800000 tours. Un hasard qui m'a permis de localiser l'individu, lui souffler dans les bronches comme il se doit et ça n'a pas débordé ... (ha oui, sur Magdales, 1 Pièce d'or représente une bonne semaine de combat pour un vétéran ...).Je pense que si le système est bien fait, il n'est pas spécialement compliqué. Je n'utilise pas un flag pour chaque type d'événements (bannissement, débannissement, etc.), mais un flag général qui déclenche une sorte de "nouveau login" (de la même façon qu'on actualise les données de session lorsque "minuit" sonne et que par exemple les points d'action des joueurs augmente de 5).
Alors pourquoi dis-je que ton système n'est pas le plus efficace ? Pourquoi a ton avis avons-nous inventé les bases de donnée ? Il serait prétentieux de donner une réponse exhaustive à ces deux questions, mais : la gestion de donnée de données concurrentielles et la facilitée de mise à jour seraient 2 pistes de réflexion.
En gros, ça prend pas tellement plus de temps de faire une requête SQL à ta base de donnée, que de tester la présence ou l'absence d'un fichier correctement formaté. Par contre, la gestion des droits de fichiers varient selon les OS ... Si tu veux débannir un joueur, auras-tu les droits de suppression du fichier dans ton nouvel hébergeur ?
Aujourd'hui, tu utilises ton système de fichier pour le bannissement. Demain, tu en auras besoins pour d'autres variables ... vas tu faire un système compliqué de fichier à chaque fois ?
La technique que tu emploies était très utilisée avant ... Ton fichier s'appelle un "Flag" si tu veux faire des recherche Google sur cette technique.
Sache qu'il existe une autre technique qui permet de modifier directement la Session d'un autre joueur ... Je ne l'utilise pas, mais ce n'est pas le cas de certains créateur de jeu sur ce forum... En mon sens cette autre technique doit être bien maitrisée sinon c'est le moyen le plus directe d'aller à la catastrophe ...
kéké (bis)
A bien y réfléchir, la modification de données par un utilisateur étranger est quand même relativement ponctuelle. C'est l'admin qui modifie tel ou tel champ, le modo qui bannit un joueur des forums, un chef d'alliance qui modifie ton "grade".
Pour les évènements plus spécifiques, à priori, dans un jeu php, aussi complexe soit-il, il n'y en a pas 50.
En ce qui concerne l'OS du serveur et ses spécifications, c'est comme pour tout, il faut avoir une solution adaptée à ses besoins Ça vaut pour les droits sur les fichiers comme pour les bases de données et les versions de php.
Je reste convaincu qu'en étant bien organisé, qu'en sécurisant correctement l'accès aux données, on peut facilement utiliser des données de session de manière fiable.
Edition: Et pour sûr, je ne pense pas que mon système soit le plus efficace ^^ C'est une proposition parmi tant d'autres