Comment faire un bon system de session? - PHP - Programmation
Marsh Posté le 05-11-2003 à 21:20:59
c tro long a expliquer
va sur http://az-php.com/?p=cours_23
Marsh Posté le 05-11-2003 à 22:19:15
j'ai deja vu ce site mais le prob c'est que je ne peux pas savoir si les autres sont connecté avec ce system.... vous voyez ce que je veux dire?
Marsh Posté le 05-11-2003 à 22:24:10
ils stockent simplement les personnes connectées dans une table.
Marsh Posté le 05-11-2003 à 22:25:55
Oui c'est ce que je me suis dit mais le prob c'est de savoir quand on doit les considerer comme deconnecte... parce que avec phpbb des que les mec sort du forum... c'est mis de suite a jour... c'est ca que je capte pas trop... vous avez pas une idee?
Marsh Posté le 05-11-2003 à 22:28:05
non, c'est pas mis à jour de suite, c'est réactualisé en fonction d'un timeout que tu décides à chaque rafraichissement de la page.
Marsh Posté le 06-11-2003 à 12:10:48
D'accord alors imaginons que le time out est tres court comme ca des que le gars se deco, on le remarque tres rapidement... ca veut dire aussi que s'il reste longtemps sur une page il sera alors considere comme deco .. non?
Hors sur phpbb il n'est pas considere comme deco.... probleme... comment ils font?
Marsh Posté le 06-11-2003 à 12:35:11
Hankmoon a écrit : D'accord alors imaginons que le time out est tres court comme ca des que le gars se deco, on le remarque tres rapidement... ca veut dire aussi que s'il reste longtemps sur une page il sera alors considere comme deco .. non? |
Ils mettent un timeout très long ?
Marsh Posté le 06-11-2003 à 12:37:19
Regarde le code de PHPBB !
Marsh Posté le 06-11-2003 à 12:38:56
Idée :
Timeout court + frame cachée qui se rafraichie souvent.
Marsh Posté le 06-11-2003 à 12:46:20
ben je pense pas sinon ca marcherai pas.... ya une incoherence la...
Marsh Posté le 06-11-2003 à 12:48:52
le code de phpbb est completement inconprehensible.... si vous avez deja regarde...
le prob de la frame cacher c'est que ca prend des ressources... et visiblement ils n'utilisent pas ca... puisqu'il faut rafraichier la page pour voir les changements...
Marsh Posté le 06-11-2003 à 14:13:59
Je parle d'une frame cachée qui ne fait rien d'autre que se rafraichir. Elle ne permet de pas de montrer les changements, mais juste de garder la session ouverte.
Je n'ai pas dis que c'était ce qu'utilise phpbb !
J'ai jamais regardé le code de phpbb, je ne m'interesse pas au forums pour le moments
M'enfin je vais jetter un oeuil, des fois qu'il y ait une techinque interessante.
Marsh Posté le 06-11-2003 à 16:19:00
vu que la table est rafraichie à chaque visite, rien ne vous empèche de réinitialiser le compteur pour la personne qui rafraichit la page.
Marsh Posté le 06-11-2003 à 17:02:16
gizmo a écrit : vu que la table est rafraichie à chaque visite, rien ne vous empèche de réinitialiser le compteur pour la personne qui rafraichit la page. |
Hein c'est possible çà
Ha, heu, ben oui en fait. C'est même de çà qu'on parle...
Bon, Hankmoon, j'ai regardé un peu phpbb, et y'a rien d'extraordinaire. Un simple timeout, pas de détection de déconnexion.
Marsh Posté le 07-11-2003 à 14:29:06
oki alors il se la font simple... a chaque connection il stock dans une base de donne avec un timeout et des que le time out est passe le gars est considere comme deco...
oki bon je fera ca alors...
merci les gars..
Marsh Posté le 07-11-2003 à 14:29:38
Ha juste encore... le truc de la Iframe qui se rafraichi tout le temps.. c'est pas trop lourd au final sur le site?
Marsh Posté le 07-11-2003 à 14:32:36
mais pourquoi tu veux faire une frame? t'en a pas besoin!
Marsh Posté le 07-11-2003 à 14:42:42
non c'etait juste une question, j'ai vu un site que avait fait une iframe et qui la rafraichissait toute les 15 sec... je me posait la question de savoir si c'etait pas trop lourd...
Marsh Posté le 07-11-2003 à 15:19:06
gizmo a écrit : mais pourquoi tu veux faire une frame? t'en a pas besoin! |
Si tu te débrouille bien, c'est super light. Y'a quazi rien à envoyer, et sur le serveur y'a juste un update.
Marsh Posté le 07-11-2003 à 15:25:02
c'est plus ligth de faire l'update au moment où le type rafraichit sa page volontairement ou navigue dans le site.
Marsh Posté le 07-11-2003 à 16:18:40
Oui, bien sûr !
Le but est d'avoir un timeout de session très court, genre 30 secondes.
Donc si tu reste sur ta page sans rien faire, ben t'es toujours considéré comme connecté. Par exemple, tu apparais dans la liste des utilisateurs. Alors que si tu fermes le navigateur, tu disparais en 30 secondes.
Reste à voir si çà a une utilité, mais c'est une autre histoire.
Marsh Posté le 07-11-2003 à 16:33:03
Mara's dad a écrit : Oui, bien sûr ! |
Et tu marques comme connecté une personne qui a laissé ouvert en tache de fond son navigateur pendant 3 jours. Pas très fiable quoi
Marsh Posté le 07-11-2003 à 17:02:18
phpBB doit tenir a jour une liste des personnes connectees, en enregistrant la date du dernier clic de chaque user.
Est considere comme deconnecte un user qui n'a pas clique depuis x minutes ...
Marsh Posté le 07-11-2003 à 17:26:38
Et est ce que ca n'influence pas la page sur laquel on est ? parce que j'ai remarque qu'a chaque maj de cette iframe la page ramé... et personnelement ca donne pas bcp envie d'en faire une...
Marsh Posté le 07-11-2003 à 19:08:11
bah oui, c'est normal. Vu qu'il y a rechargement de la page, elle doit être redessinée, même s'il n'y a rien à afficher.
Marsh Posté le 07-11-2003 à 20:07:18
Non, en phpBB, il n'y a pas d'IFRAME dans la page, c'est le dernier clic qui compte. et si au bout de 3 minutes tu n'as pas clicquer qque part c'est que vraisemblablement, tu es en train de faire autre chose ...
Marsh Posté le 07-11-2003 à 20:32:04
ca a aucun rapport mais est-ce quil serait possible de faire un javascript qui ecrit dans un fichier quand qqun sen va du site
je mexplik : on dirait quon peut faire des action javascript quand la fenetre se ferme, et si on peut ecrire dans un fichier avec javascript(je suis pas sur) on pourrait imaginer le systeme de visiteurs online ultime, il suffirait de rajouter 1 quand qqun arrive sur le site, et denlever 1 quand il sen va..
c possible ¿
Marsh Posté le 07-11-2003 à 20:47:40
Tu en connais beaucoup de javascript coté client qui écrit dans un fichier coté serveur ?
Marsh Posté le 07-11-2003 à 21:46:27
Kristoph a écrit : Tu en connais beaucoup de javascript coté client qui écrit dans un fichier coté serveur ? |
ha vi chuis bete
mé alors ya pas moyen de faire un compteur de visiteur online qui marche pas quavec des approximations ?
Marsh Posté le 08-11-2003 à 19:54:04
Y'a un truc possible, mais c'est pas beau :
Quand on ferme le navigateur ou si on va sur un autre site, on ouvre une fenêtre sur une url de déconnexion.
Cette fenêtre se ferme toute seule quand elle est chargée.
Du coup le site sait quand quelqu'un est parti, ce qui n'empèche pas de gérer un timeout, par exemple pour le gars qui reste sur la fenêtre 3 jours, ou pour celui victime d'une coupure de courant ou plus souvent d'un plantange d'IE.
Mais comme je l'ai dis, c'est pas beau...
Il faudrait que les navigateurs puisse gérer autre chose que du GET/POST, mais c'est pas pour tout de suite (sauf avec un composant externe...)
Marsh Posté le 08-11-2003 à 19:57:42
et encore, ton système ne marcherait que chez les personnes qui n'ont pas d'anti-pop-up ou le JS désactivé.
Marsh Posté le 09-11-2003 à 15:16:24
Bon, j'ai essayé un truc :
Page dont on veux controler la deconnexion (index.html):
<html> |
Page qui enregistre la deconnexion (deconnexion.php):
<?php |
Résultat sur le serveur (deconnexion.txt) :
id=25, agent=Netscape |
Cà marche pas à tous les coups, vu qu'on est pas trop cencé faire grand chose dans onUnload() ou dans onBeforeUnload(), mais c'est une piste.
Marsh Posté le 09-11-2003 à 20:11:58
Donc dès que tu changes de page, t'es considéré comme déconeccté avant de te reconecter.
Mais si le navigateur à le javascript désactivé ou le navigateur qui se plante, le visiteur est toujours connecté.
De plus, si le gas reste pendant 3 jorus sur la page, c'est pareil.
Marsh Posté le 10-11-2003 à 10:24:52
1- Connexion, déconnexion, en fait c'est pas aussi important que çà. Il s'agit juste pour un forum de savoir qui est en ligne. Donc çà ne me choque pas. En plus, c'est qu'un démonstrateur, c'est un truc à désactiver si tu passe à une autre page du même forum (avec un flag par exemple...)
2- Il faut de toute façon un timeout. Voir posts plus haut.
3- Sans JS, on va pas bien loin sur le net aujourd'hui...
Marsh Posté le 10-11-2003 à 10:26:09
ReplyMarsh Posté le 10-11-2003 à 10:29:46
gizmo a écrit : |
Je m'incline devant un tel argument.
Au fait, çà s'écrit Meuh
Enfin, les vaches de chez moi l'écrivent comme çà...
Marsh Posté le 10-11-2003 à 10:33:10
pourquoi vous voulez à tout prix lister les users à 5 sec près?
Marsh Posté le 05-11-2003 à 15:11:48
Bonjour a tous,
J'aimerais faire sur mon site un system de session qui me permettrais d'afficher sur mon menu a gauche toute les personnes actuellement connecte a mon site. Malheureusement je n'arrive pas a trouver un system efficace... avez vous une solution?
ps: savez vous comment fait PHPBB pour leurs forums?