IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Poids / taille maximum d'une session [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Poids / taille maximum d'une session
    Bonjour à tous,

    Sur un programme que je suis en train de développer, je me retrouve avec un énorme tableau à mettre en session, ou pas, à voir justement si vous avez une meilleure idée pour stocker ça.

    Ce tableau est censé pouvoir contenir jusqu'à 999x999 cellules distinctes (oui oui, ça fait beaucoup), chaque cellule étant un array avec 3 valeurs dedans.
    Donc ça fait un énorme truc à sauvegarder. J'ai fait quelques tests et il s'avère que ça bug à partir de tableau 200x200 et quelques (en gros à partir de 40000 données distinctes mises en session).

    Bref, j'aurais voulu savoir auprès de connaisseurs tels que vous si vous voyiez un meilleur moyen de sauvegarder autant de données d'un coup et si non, peut-on augmenter la taille/poids des sessions pour stocker tout ça ?

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 416
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 416
    Points : 15 785
    Points
    15 785
    Par défaut
    pour t'aider il faudrait que tu nous donnes plus de détails sur la façon dont sont utilisés les données de la session. suivant l'utilisation il y a plusieurs solutions comme par exemple :
    - gérer les sessions avec une base de données
    - faire un mélange fichiers bruts / base de données

    j'allais aussi proposer de regarder la taille des sessions mais dans les valeurs de configuration il n'y a pas ce choix (http://php.net/session.configuration) qu'est ce que tu as eu comme problème de taille ?

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    En gros l'interface que je développe actuellement permet à un utilisateur de pouvoir créer des planètes, ces planètes pouvant faire jusqu'à 999x999 cases. Sur chaque case, ils pourront placer une texture, un décor et une ressource qui sont tout simplement des images de fond avec fond transparent appliquées les unes sur les autres.

    Ma problématique actuelle est de pouvoir sauvegarder ces 999x999 cases. Sachant que l'interface affiche des blocs de 20x20 l'utilisateur se déplace donc de bouts de planète en bouts de planète. Les sessions devaient me permettre de sauvegarder les modifications effectuées sur un bout de planètes et pouvoir y revenir ensuite, sans avoir à sauvegarder en base à chaque changement de bout.

    La planète est ensuite sauvegardée en base une fois que l'utilisateur clique sur "Créer".

    Mon problème actuel est que quand j'initialise une planète de 400x400, j'initialise une texture par défaut (de l'herbe) sur chaque case, pas de décor ou ressource pour le moment.
    Quand je navigue sur ma planète mes 200 premières colonnes affichent bien l'herbe, mais à plus de 200, je n'ai rien, la session n'a pas enregistré plus d'infos. Edit: En fait il s'avère même que la session garde l'état précédent, à savoir que si j'avais initialisé une première planète de 40x40, seules les 40 cases seront visibles si j'actualise et essaie de créer une planète de 400x400.

    Quand j'affiche la session en print_r, à partir de 200x200+ (ou ptêt 300+, je referais des tests ce soir) et quelques, rien n'est affiché.

    Voilà donc l'idée. Si vous avez des suggestions pour faciliter le fonctionnement, je suis tout ouï

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bon je m'auto-répond bien que la solution passe par une autre méthode de stockage.
    Stocker autant d'informations en session semble apporter trop de problèmes de mémoire et plante assez aléatoirement (perte des infos de connexion en session, bouts de plateau manquants...).
    Donc comme mathieu le suggérait, je vais plutôt stocker mes infos dans une table sql temporaire et prendre seulement les cases de plateau correspondant à l'affichage courant.

    Voilà voilà, merci quand même ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/07/2007, 14h00
  2. Taille maximum d'une base de données
    Par soad029 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 31/05/2007, 21h58
  3. taille maximum d'une base de données Access
    Par azizinfo2010 dans le forum Access
    Réponses: 3
    Dernier message: 23/02/2007, 17h44
  4. [Tableaux] Taille maximum d'une clé
    Par arnolem dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2006, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo