A des fins de statistiques sur l’intranet de l’entreprise j aimerais intégrer le nb de connexion pour chaque IP et également le temps passe sur l’intranet toujours par utilisateur.
Le nombre de connexion c est pas complique, on prend la page index, si c est l’utilisateur x qui se connecte, on prend son fichier et on ajoute 1, pour l’utilisateur Y pareil.
Par contre je bloque un peu pour le temps de connexion. Les utilisateurs ont sait quand ils arrivent mais pas qd il partent! car je n’ai aucun bouton “deconnexion” qui existe…donc ils utilisent la croix de fermeture de fenetre de IE.
A votre avis comment faire? il ya des scripts qui existent pour realiser ca?
je pense que oui, puisque certains hebergeurs fournissent des outils de statistiques avec l’hébergement (comme awstat par ex). Et dedans, ils précisent le temps de connexion à 30 secondes près. Donc on peut supposer que oui, ça existe
Si c’est à 30 secondes près, le clacul doit peut etre s’appuyer sur un temps estimé pour lire la page.
Si la personne ouvre seulement un lien, tu enregistres sa date d’arrivée et tu estimes qu’elle est restée 30 secondes.
Si elle clique sur un autre lien sur ta page, tu retiens la date de ce clic, tu peux calculer le temps par rapport à la date d’arrivée, et tu rajoutes 30 secondes pour la lecture de la page en cours.
Vu que tu connaît l’utilisateur, c’est qu’il doit y avoir une session. le problème, c’est que la session ne se termine jamais, mais il doit y avoir un time-out pour terminer automatiquement la session.
soit tu peut prendre la main sur ce time-out et tu détermine le temps de session par la date/heure du dernier appel - la date/heure du premier appel (pour ne pas prendre en compte justement la durée du time-out). Tu stocke date début date fin dans la session.
Soit en mode "bourrin" tu considère chaque appel comme le dernier appel et à chaque appel tu écrase (en base de données par exemple) une date de fin liée à un N° session/utilisateur(en en écrivant la date de début au login) la valeur ne sera fausse que pour les sessions en cours et correspondra à la durée "en cours".
+1, après tu peux utiliser 5 minutes au lieu de 30 secondes, si tu ne veux pas un résultat à la seconde près.
Autrement, si c’est vraiment, vraiment important, tu peux inclure un “heartbeat” dans chaque page, un petit JavaScript qui enverra une requête bidon vers le serveur toutes les minutes par exemple… tant que l’utilisateur a la page d’ouverte, ça comptabilise le temps, et s’il ferme la fenêtre, plus aucune requête ne sera envoyée, donc tu auras le temps de visite avec une marge d’erreur d’une minute maximum.
le problème c est q un utilisateur peut visiter plusieurs pages mais facon tres rapide et puis tout fermer, mais le meme utilisateur peut par exemple rester 15min si il recherche un certain nombre de client
je suis pas a 5min pres, mais multiplié par le nombre deconnxion je risque d 'avoir de tres grandes erreurs
je n utilise pas de sessions…je sais qui est qui uniquement par l’adresse IP du client (adresse IP reservée)
ca peut etre sympa…tu as des codes comme exemple? es ce que ca demande bcp de ressources? l’ideal c est que je fasse genre toutes les 2min voire 3min
<script language="Javascript">
<!--
var exit=true;
function exitcnsl()
{
if (exit)
<?php include 'code_a_excuter_a_la_sortie_de_la_page.php';?>
}
//-->
</script>
Le principe de onunload est de détecter un appui sur le croix du navigateur non?
après test complémentaire le onunload pose un serieux problème
ce que j ai fait, c est que je lai mis dans le body (normal je dirais) puis dans le head j ai integrer l’ouvverture d une popup qui execute le script php que je veux
le soucis c est que l’ayant mis ce code sur toute les pages de mon site (logique je dirais) ben des que je vais sur un lien interne au site (je change de page) ca m affiche le popup!
Oui, après c’est à régler en fonction de la puissance du serveur et du nombre d’utilisateurs… :jap:
Mais niveau performance je ne vois pas de soucis particulier, ce n’est pas vraiment ce qui va plomber un serveur web, si y’a déjà des scripts PHP qui tournent dessus.
Bon je donne ma petite idée, mais bon je pense pas être le plus qualifié
Création d’un cookie à l’arrivée de l’utilisateur : heure arrivée
Création d’un cookie de session, qui sert à l’identifier.
A chaque chargement de page : est ce qu’on a un cookie de session ?
Si oui, on prend le cookie d’heure d’arrivée, et on met à jour la base de données avec la nouvelle différence (time() - heure d’arrivée). Mais bon tu vas tuer ton serveur avec ce genre de trucs de toute manière
Le plus simple : les logs apache du serveur, et analyse via un outil dédié ^^
L’un dans l’autre, une page web étant globalement statique une fois qu’elle est générée, on ne sait jamais combien de temps sont les visiteurs sur le site.
Par contre pour le javascript, j’en ai déjà vu qui lancent une alerte quand tu quittes le site (changement de domaine, fermeture du navigateur).
MySQL c’est prévu pour gérer ce genre de petites requêtes de façon très efficace, donc ça ne risque pas sur mettre un serveur sur les genoux s’il n’est pas trop mal dimensionné. :neutre: