|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 6 ![]() |
Bonjour,
Nouveau sur le forum, je viens chercher de l'aide à un problème. Soit personne ne l'a rencontré soit c'est tellement simple que je ne vois pas comment faire (et donc personne n'en parle car je n'ai rien trouvé sur le sujet). Situation : L'utilisateur se connecte à mon site, son status online est enregistré en BDD. S'il se déconnecte manuellement, il passe en offline dans la BDD. Jusque là tout va bien. Comment mettre le status en offline à la fermeture du navigateur. Certain propose la solution ajax avec onunload ou onbeforeunload comme "activateur" du script. Déjà, avec ce système, la fonction qui doit se lancer au onunload/onbeforeunload se lance au chargement de la page (logique hein...). Au rafraichissement je veux bien mais pas au premier chargement de la page. Je pensais travailler ainsi avec ce système : Code :
En plus, je veux que ça fonction quand l'utilisateur ferme sa dernière fenêtre (en supposant qu'il a ouvert plein d'onglet et de fenêtre du site). Mon problème ne doit pas être impossible car sur tous les forums il y a un indicateur de membres online. Quand on ferme toutes les fenêtre du forum sur lequel on est, on apparait alors comme hors ligne pour les autres membres. Bref un casse tête car je ne vois pas du tout comment faire ce truc. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
les autres systèmes marchent avec un timer, en gros si le membre est inactif depuis 5 min il apparait déconnecté, y'a pas d'histoire de fermer le navigateur ou pas
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 6 ![]() |
ça serait donc ça... Je vais tester la chose et vous tient au courant. Merci pour l'info
|
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 6 ![]() |
Alors j'ai regardé et une question se pose : Si je lance le script a chaque fois que l'utilisateur utilise le site (script installé dans le fichier de session par exemple). Je teste bien le temps d'activité entre sa nouvelle action et la dernière mais ça ne permet pas de tester son activité une fois qu'il a quitter le site... Donc comment on fait pour lancer le script quand la personne ne fait plus rien, a fermer le navigateur et tout et tout ?
mon code : Code :
|
||
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
c'est l'utilisateur qui lance script
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 6 ![]() |
Merci, mais comment il peut le lancer s'il a fermé toutes les fenêtres voir éteint son ordinateur...
C'est dans la procédure que je n'arrive pas à cerner comment faire Je suis perdu entre la durée de vie de la session et l'enregistrement de la date à laquelle l'utilisateur a fait sa dernière action. Sur gmail par exemple, au bout d'un certain temps d'inactivité, on passe en mode absent puis si ça dure en déconnecté. Il y a donc bien un moment donné où un script se lance pour passer l'utilisateur en absent ou en déconnecté sans que l'utilisateur ai fait quelque chose. La question est donc où et comment ? |
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
- l'utilisateur se connecte
- dans ta base, le champs de "dernière connexion" est mise a jour, plus le champs disant qu'il est "connecter" - dans la partie ou on voit les utilisateurs connectés, tu regarde qui est en "connecter" + depuis 5min - quand l'utilisateur se déconnecte ton champs "connecter" est a 0, donc il ne s'affichera pas pour les autres, si il n'a aucune activité depuis 5min il est considéré comme déconnecter - a chaque fois que l'utilisateur ouvre une page, le champs "dernière connexion" est mis a jour
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 6 ![]() |
Ok je vois. Il me manquais le passage en BDD (enfin, je ne voulais le faire que si l'utilisateur était inactif et non à chaque chargement de page d'où mon "idée" de script qui se lance tout seul au bout d'un moment).
J'ai compris le concept, je vais voir ça. Merci
|
|
|
00
|
|
|
#9 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
au passage pourquoi PHP 4 ? t'es chez quel hébergeur ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 6 ![]() |
Comme ça, ça fonctionne très bien bien merci.
PHP4 car je n'ai pas besoin d'objet et surtout je n'ai pas le temps de me mettre au php5. Sur le fond ça ne change rien, non ? |
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
si quand même, de plus le support de PHP 4 est abonné depuis longtemps, d’ailleurs celui de la 5.2 aussi, c'est plus que vivement recommandé de mettre de PHP dans une version recente, c'est un peut comme si tu restais sur ton Windows 98, OK ça marche mais bon ...
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#12 | |
![]() ![]() Ingénieur développement logiciels Inscription : mai 2002 Messages : 3 725 ![]() |
Citation:
Peut-être n'as-tu pas perçu l'intérêt de la programmation orientée objet, mais c'est une manière efficace de développer, cela t'apporte des bonnes pratiques pérennes (les concepts objet sont valables dans la plupart des langages) et c'est la manière recommandée de coder en PHP aujourd'hui (en tout cas c'est clairement incontournable pour des applis professionnelles). L'époque où on mélangeait gaiment dans un seul script le code html de présentation avec le code php pour afficher et mettre à jour les données avec des mysql_query() dans tous les coins est révolu depuis des années... Ne te méprends pas, ce n'est pas pour le plaisir d'être à la mode, mais ce modèle de développement a montré ses limites et surtout ses faiblesses : problèmes de maintenance (code spaghetti illisible) et de sécurité (souvent ce type de code est mal protégé contre les failles connues comme par exemple les injections SQL). C'est ce type de développement qui a contribué à la mauvaise image de PHP ("langage d'amateur", sites souvent bourrés de failles), qui traîne encore cette réputation aujourd'hui. Actuellement le monde de PHP a atteint la maturité et donc on code en objets, et on sépare bien les couches présentation et modèle (voir pattern MVC), tout cela étant facilité par l'utilisation d'un framework (Zend Framework ou Symfony sont les 2 frameworks les plus répandus). Cela représente un temps d'apprentissage, certes, mais ça vaut vraiment le coup de s'y mettre. Je comprends que pour un gros site, la migration est difficile (inutile de se voiler la face : il faut tout réécrire); mais si c'est un site de quelques pages, ça vaut le coup de faire l'effort crois-moi Au passage, au niveau base de données c'est un peu pareil : souvent PHP4 est associé à une DB mysql au format myisam, qui là aussi est un choix obsolète peu pertinent vu l'absence d'intégrité référentielle. Il faut lui préférer le format innodb.
__________________
Tutoriels sur les UPS, e-commerce, PHP, critiques de livres... Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles. Je n'ai rien à voir avec la société www.ovh.com ! |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com