JeuWeb - Crée ton jeu par navigateur
Session et base de donné - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Session et base de donné (/showthread.php?tid=7889)



Session et base de donné - Theotime74 - 03-11-2017

Bonjour.

Je pose ici cette question toute simple, car je n'ai pas trouvé de réponses satisfaisantes ailleurs.
Pour créer un jeu web aujourd'hui, ai-je intérêt à utilisé un stockage des sessions dans une base de donnés ou puis-je me contenter des commandes basiques?

Merci de votre attention.


RE: Session et base de donné - Xenos - 03-11-2017

Salut,

il y a déjà plusieurs topics là-dessus je crois?

Sinon, pour ma part, ce genre de question me laisse penser que le rôle de la session n'est pas nécessairement compris. Pour ma part, la session n'a qu'un seul but: permettre de savoir qui est le client du serveur (l'authentifier). A cette fin, on y trouvera donc un SESSID (partagé avec le client et géré tout seul par PHP par exemple) et un ACCOUNTID (ou "id du joueur dans ma base de données"). La session ne sert donc qu'à faire le lien entre ce SESSID et l'ID du joueur.

(Dans la pratique, je stocke aussi le pseudo et l'email du joueur connecté)

Qu'est-ce que tu appelles "commandes basiques"? Et un "stockage des sessions dans une BDD"? Parce que oui, en fait, j'ai peut-être mal compris la question: tu peux stocker la session en BDD (plutôt que sur disque ou sur "la méthode par défaut de mon hébergeur"), mais l'intérêt est souvent nul...


RE: Session et base de donné - Theotime74 - 03-11-2017

Ah, désolé si j'ai fait une redite.

La question est bien: est-il mieux de stocker les sessions sur une BDD ou d'utiliser la méthode par défaut.

les topics sur le sujet parlais plus de la méthode que des avantages ou inconvénients.


RE: Session et base de donné - Xenos - 03-11-2017

Si on ne parle que de stockage, sans changement de mécanique, alors je ne vois pas ce qu'altérer la méthode par défaut t'apportera. Cette méthode par défaut ayant déjà énormément d'avantages:
• Pas besoin de code en plus, t'as déjà assez à faire avec un jeu (et tu risques de mal l'implémenter, c'est à dire de manière non-safe [quid d'une injection SQL permettant de lire la BDD? je pourrai probablement voler la session] ou peu performante [garbage collection des sessions])
• Si t'es en mutualisé, genre OVH, c'est ton hébergeur qui gère les perfs du bouzin, et s'il est plus intéressant de stocker en BDD plutôt que sur disque alors il le fera sans que tu ne t'en occupes
• Si les sessions sont stockées sur disque, alors tu t'épargnes l'ajout d'un autre composant informatique (la BDD); or, plus tu ajoutes de composants, plus le risque de plantage du jeu est élevé (car il suffit que l'un plante pour que tout plante, ie: stocké sur disque, les sessions ne plantent que si le serveur est planté alors que stocké sur BDD, les sessions planteront si le serveur plante OU si la BDD est plantée/inaccessible)

Donc, aucun avantage réel à faire ce genre de stockage.


RE: Session et base de donné - Theotime74 - 04-11-2017

D'accord, merci pour ton aide.
ça m’enlève une épine du pied, j'était un peut perdu face à la forêt de ligne de code à employer pour mettre en place ce genre de chose.


RE: Session et base de donné - Furiats - 24-12-2017

Bonsoir,

Je pense qu'il est préférable de tout stocker sur une base de donnée pour la simple et bonne raison que si tu veux changer d'hébergeur ou que bêtement tu perdes certaines données (infos_joueur/items,etc...,) il suffit de faire des sauvegardes régulières comme ça les joueurs (ou autres) ne devront pas se recréer de comptes.


RE: Session et base de donné - Xenos - 27-12-2017

Les sessions, ce n'est pas du tout la même chose que les données de l'inscription. C'est le composant servant à l'authentification, c'est tout. On s'en fout un peu que son contenu soit perdu si tu changes d'hébergeur/d'hébergement (d'autant que comme pour une BDD, tu pourras aussi transférer les sessions qui sont très probablement stockées sur disque ou dumpable).