Je développe un site en PHP. Lorsque la session utilisateur démarre, je charge toute sa ligne db dans la variable $ _SESSION. Lorsque l'utilisateur change une valeur db, je mets aussi à jour la variable $ _SESSION.Cohérence des données utilisateur entre toutes ses sessions
Le problème commence lorsque plusieurs sessions sont actives pour le même utilisateur. Existe-t-il un moyen de mettre à jour les données pour toutes les sessions du même utilisateur sans surcharger la base de données? Ou, alternativement, y a-t-il un moyen de forcer php à utiliser le même fichier de session pour toute la session appartenant au même utilisateur? Ou je dois simplement interroger la base de données chaque fois qu'une session se poursuit?
Et un autre dilemme: est-ce que ça vaut le coup? Je veux dire, je ne sais pas combien ce mécanisme pourrait alléger la charge du serveur, et je ne sais pas si ce mécanisme est applicable aux sessions basées sur des fichiers ou je dois utiliser un autre type de stockage de session.
Cette question est en quelque sorte liée à this other question on mine (même si la solution consiste simplement à supprimer tous les fichiers de session).
Si les données sont présentes dans la base de données, vous n'avez pas besoin de les transférer par session à chaque fois. Vous n'avez besoin que de l'utilisateur connecté enregistré en session. Disons que l'utilisateur est connecté, et il met à jour son avatar ou quelque chose, lié à son user_id. Pourquoi auriez-vous besoin d'enregistrer $ row ['avatar'] dans $ _SESSION, quand vous pouvez y accéder à chaque fois par '" SELECT utilisateurs avatar FROM WHERE user_id = $ _SESSION ['user_id'] "' –
@RoyalBg Vous enregistrez exactement votre donné appelez à la base de données, si vous gardez ces données dans la lecture de toute façon SESSION – djot
exactement @RoyalBg, vous devez mettre à jour evrything dans db en utilisant le 'user_id', puis si vous devez mettre à jour email ou nom d'utilisateur, puis le mettre à jour enregistrer l'e-mail ou le nom d'utilisateur mis à jour à la session –