le temps de visite d'un visiteur

zarbrok
Invité n'ayant pas de compte PHPfrance

30 sept. 2006, 17:27

salut à tous(tes),
voila comme précisé dans le titre j'aimerais savior si il existe une méthode fiable pour gérer ça (à des fins statistiques)
une méthode ne surchargeant pas la base et efficace.
merci

zarbrok
Invité n'ayant pas de compte PHPfrance

01 oct. 2006, 14:47

bon en fait je m'explique mieux :roll:
alors y a t il un moyen pour récupérer l'heure à laquelle le visiteur ferme la fenetre (sans employer de onunload, ni meme de javascript.) ???
toute aide est la bienvenue
merci par avance

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

01 oct. 2006, 14:56

La fermeture de la fenêtre étant un évènement client,
je ne vois d'autre solution que le javascript (et l'évènement onunload, justement).

Une session PHP est fermée automatiquement lors de la fermeture de la fenêtre,
mais elle ne peut plus déclencher de traitement tel que l'enregistrement d'une heure...

Sans javascript, je ne vois pas...
Y a peut-être, mais j'ai pas l'idée.

zarbrok
Invité n'ayant pas de compte PHPfrance

01 oct. 2006, 15:00

merci de ta réponse aussi rapidement
je sais bien que c'est un évenement client mais onunload est assez aléatoire.
j'avais pensé sinon à un code effectuant une requette au serveur à interval + ou - long notant ainsi l'heure mais le probleme est que suivant le trafic engendré par le site j'ai peur de fusillé ma base ...
je vais continuer à chercher et vous ferez part de mes trouvailles si il y en a ;)
encore merci et a + tard

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

01 oct. 2006, 15:04

Je vais peut-être dire une bêtise (je n'ai pas fouillé)
mais je lance une idée en l'air : et avec des cookies ?

Cela dit, même si cela peut marcher (mais comment ?),
cela restera une technique encore plus aléatoire que le onunload.

zarbrok
Invité n'ayant pas de compte PHPfrance

01 oct. 2006, 15:08

:lol:
je viens de trouver quelque chose d'interessant ... mais avec onunload ;)
http://www.javascriptfr.com/codes/CONNA ... 16339.aspx
j'ai pas encore essayé mais ça à l'air correct à vue de nez..

Invité
Invité n'ayant pas de compte PHPfrance

01 oct. 2006, 19:04

arrrfff
marche pas le onunload !
n'y a t il aucun moyen de gérer la fermeture de la page par l'utilisateur ???

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

01 oct. 2006, 22:54

Pourtant l'événement "onunload" devrait fonctionner... et la popup peut être remplacée par un script Ajax :)

Sinon solution pratique en cas d'utilisation de pseudo frames :
Effectuer un enregistrement en BD sur chaque chargement de page.

Cette solution peut aussi faire l'affaire sans pseudo frames mais impose l'inclusion sur toutes les pages du script qui ferait l'enregistrement.

Solution pas parfaite car elle n'enregistrera pas la dernière page vue. Si le visiteur n'en voit qu'une => pas de données :?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

zarbrok
Invité n'ayant pas de compte PHPfrance

01 oct. 2006, 23:04

Pourtant l'événement "onunload" devrait fonctionner... et la popup peut être remplacée par un script Ajax :)

Sinon solution pratique en cas d'utilisation de pseudo frames :
Effectuer un enregistrement en BD sur chaque chargement de page.

Cette solution peut aussi faire l'affaire sans pseudo frames mais impose l'inclusion sur toutes les pages du script qui ferait l'enregistrement.

Solution pas parfaite car elle n'enregistrera pas la dernière page vue. Si le visiteur n'en voit qu'une => pas de données :?
beh en fait le site en question il n'a qu'une page car en flash...
de ce fait j'ai inclu ma page d'enregistrement .
pour le onunload c'est pas qu'il ne marche pas, mais plutot qu'il fonctionnne 1 fois sur 5 ...
pour le script ajax c pas une mauvaise idee je vais me renseigner.
merci pour ton aide Truc

zarbrok
Invité n'ayant pas de compte PHPfrance

01 oct. 2006, 23:32

bon beh ajax est encore la meilleur solution... merci Truc
avec un code du type:

Code : Tout sélectionner

<script> function file(fichier) { if(window.XMLHttpRequest) // FIREFOX xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // IE xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else return(false); xhr_object.open("GET", fichier, false); xhr_object.send(null); if(xhr_object.readyState == 4) return(xhr_object.responseText); else return(false); } </script> // et ensuite on appel la page qui va enregistrer l'heure de sortie <body onunload="file('heure_sortie.php')">
et voila le tour est joué !
toutefois limité car en javascript :oops:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

01 oct. 2006, 23:42

Merci pour ta contribution ! :pouce: =D>

zarbrok
Invité n'ayant pas de compte PHPfrance

01 oct. 2006, 23:54

tout le plaisir était pour moi :D
j'espere que ça éclairera d'autres personnes voulant faire ce genre de stats.