Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/09/2007, 00h42   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 32
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 32
Points : 12
Points : 12
Par défaut Travailler sur plusieurs sessions

Bonjour,
Je souhaite pouvoir intéragir entre mes sessions. Le but est d'optimiser mon site.

Sur mon site, il y a actuellement une requete SQL a chaque chargement de page pour vérifier si le membre a de nouveaux messages privé.

Hors, sur 150 000 requete de ce genre, il ne doit y en avoir qu'une 20éne d'utile (signalant l'arrivée d'un nouveau message).

Ce que j'aimerais, c'est que lorsqu'un membre envoie un message privé a un autre membre, je puisse chercher dans les Sessions pour savoir s'il est connecté, et ensuite lui signaler l'arrivée d'un nouveau message.

De la sorte, a chaque chargement de page je n'est plus besoin de faire une requête SQL, je sais déjà via mes variables de session si le membre a un nouveau message.


Je n'est trouvé aucun moyen de faire ça, mais je pense que l'économie serait énorme. Pour mon site, ce serait 150 000 requetes en moins pour une centaine (et encore) de recherche/modification des sessions.

De plus, ce principe peu avoir de nombreuses utilitées (Agir directement sur ses membres, bannir/kicker une personne nuisible etc ....)

Si quelqu'un a une solution, ou une piste a explorer, je suis partant
Merci d'avance.
Amrac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 09h03   #2
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Hello,

Non ce n'est pas possible d'interagir entre les sessions de tes utilisateurs (a ma connaissance).

Le mieux a faire a mon avis, est la chose suivante.

Tu détectes si l'utilisateur a une session a son nom. Si ce n'est pas le cas, alors il faut le logguer en session comme un visiteur.
Quand l'utilisateur se loggue, tu mets a jour la session en regardant si il a des MP. Et de plus, tu mets dans tes sessions une variable de temps (par exemple la date précise en temps Unix). Tu définis dans les variables de ton site, une intervalle pour mise a jour. Par exemple 180 secondes (3 min).
A chaque fois qu'il change de page tu checkes la variable de log et si ajoutée à l'intervalle, elle est inférieure au moment présent, alors tu réinterroges les MP (sans oublier de remettre la variable de log dans la session).

@+
cadou
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 12h44   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 32
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 32
Points : 12
Points : 12
J'aime bien ton idée, ca fait en effet une bonne économie de ressource, cependant ca dégrade la qualité de la messagerie (qui n'est ici qu'un exemple).

Par exemple, si 2 membres discutes sur le chat public et que l'un envoie un message public privé au second pour faire des messes-basses, il faut que le message arrive en temps réel..

Je sais que ils ont refait leur système de session et on mis les fichiers sur la RAM de leur serveur, de plus, ils ont organisé les noms des sessions comme ça les arranges, je suppose donc que même si ce n'est pas prévue initialement, il doit être possible de manipuler plusieurs sessions.

Si vous avez d'autre pistes, je suis preneur :p
Amrac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 15h30   #4
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 32
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 32
Points : 12
Points : 12
J'ai vue qu'on pouvait régler les SESSION pour qu'elles utilisent une base de données.

Il pourrait donc être intéresant d'installer un serveur SQL léger (SQLlite?) sur la RAM du serveur et d'y stocker les sessions.

Comme il serai sur la RAM, le système sera ultra rapide (ou du moins, aussi rapide que les sessions par defaut sur le disque dur). Et comme tout serait stocker dans une base de données, on pourrait travaillé avec les sessions facilement.

Qu'en pensez vous?
Amrac est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h26.


 
 
 
 
Partenaires

Hébergement Web