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 :

Optimiser un script forum en évitant les sessions


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut Optimiser un script forum en évitant les sessions
    Salut à tous. Je suis en train de développer un forum pour mon site internet. J'ai cherché un moyen de faire une classification messages lus/non-lus, comme on trouve sur tous les forums modernes. La seule solution que j'ai trouvé est de créer une variable de session pour chaque discussion ouverte. Je m'explique : pour tous les messages, j'utilise bien sur le système de timestamp, je compare le timestamp de la discussion à celui de la dernière connexion utilisateur. Pas de problème question optimisation. Mais si au cours de la visite, l'utilisateur regarde une discussion, elle doit être vu ensuite en 'lu'. Chose impossible avec la seule comparaison de timestamp. Donc, quand l'utilisateur regarde une discussion, une variable session est crée, de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['viewthread'. $id_thread]
    Cependant, j'imagine vite le bordel du serveur si plusieurs utilisateurs regardent plusieurs discussions au cours de la durée de vie de leur session . Beaucoup de variables de session vont être créer sur le serveur. Donc ma question est : cela est il nuisible pour le confort d'utilisation (le serveur va ramé ?), y a t-il une solution différent pour réaliser ce que je veux faire ?!
    Merci.

  2. #2
    Membre éclairé Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par défaut
    Je ne peux pas te dire pour la question des performances du serveur... Je serais tenté de dire que ça ne posera pas de problème, au pire un utilisateur visite quelques dizaines de discussions durant sa session, ça ne fait pas très très gros niveau taille du fichier... Mais bon, un membre plus expérimenté que moi aura sûrement la réponse !

    Sinon, je ne vois pas trop comment faire d'autre... Peut-être avec une sorte de variables de session dans la db ? Genre quand un utilisateur lit une discussion, tu insère une entrée temporaire dans une table ?

    Mmmmh... Ca n'a aucun sens, ça revient au même que des variables de sessions, sauf que c'est moins performant ...

    Non, à mon avis ta technique va bien ! Tu attends beaucoup de monde sur ton forum ? Je me demande comment c'est géré ici sur DVP...

  3. #3
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Bah pour le nombre de visiteur j'en sais rien, ça dépend de la réussite de mon site . Merci de la réponse en tout cas, je vais rester à cette solution, néanmoins, je laisse la discussion ouverte si quelqu'un a une alternative à cette solution barbare . Merci.

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    La solution la plus robuste est de conserver l'état pour chaque discussion et chaque utilisateur. Lorsqu'un utilisateur lit une discussion, enregistre en BDD le timestamp, l'id de la discussion et l'id du dernier message affiché, en plus de l'id utilisateur. Ce ne sont que quatre champs numériques.
    La clef primaire doit être id_thread + id_utilisateur, les deux autres champs étant des informations qui changent avec le temps. Utilise l'instruction REPLACE INTO si tu as MySQL, cela simplifiera les traitements.

    Un truc à propos de création de sites Web : ne te préoccupe pas des performances si la solution ne te semble pas sincèrement lourde. Tu pourras optimiser quand le site sera prêt, mais l'objectif actuel est qu'il soit prêt

  5. #5
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Salut!

    Il me semble bien que la taille du fichier temporaire de la session est limitée. Si tu enregistres trop d'informations, tu vas saturer. La solution est d'utiliser la base de données pour sauver ces informations, comme le suggère Yogui.

    Cordialement.

    [EDIT] -> 4ko maximum pour une session

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Surtout que, d'une session sur l'autre (d'un jour sur l'autre par exemple), ces informations seront perdues si elles ne sont pas mises en BDD...

  7. #7
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Je vais implémenter tout ça. Merci beaucoup !

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

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 19h59
  2. Script pour gérer les sessions utilisateurs sous Ubuntu
    Par thucydide dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 08/06/2012, 12h51
  3. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 09h33

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