Bonjour je viens de faire un script php permettant de stocker les visiteurs de votre site, et les affichant, tous ceci sans base de données car tout est stocké dans un fichier xml.
Mettre en place.
1. Téléchargez le zip du script et placez le dossier "visite" sur votre site.
2. Dans le fichier ou vous voulez insérer un visiteur ou, afficher les visiteurs, il faut inclure le fichier visite/LesVisiteurs.php:
PHP.
3. Après il faut déclarer l'objet:
--------
LesVisiteurs($chemin_racine_Visites);
- "$chemin_racine_Visites" étant le chemin vers la racine du dossier "visite".
--------
4. Si vous voulez insérer une visite il faut utiliser la fonction:
--------
insertVisite();
--------
5. Si vous voulez afficher les visiteurs il faut utiliser la fonction:
--------
$v->getVisites($nombre_de_jour);
- "$nombre_de_jour" étant le nombre de jours de visites à afficher. Les visites au delà de ce nombre sont supprimées, et vous ne pouvez pas aller au delà de 59 jours.
--------
Source / Exemple :
<?php
/**
- ce code ce trouve dans un fichier du même dossier que le dossier "visite".
- /
//on inclut le fichier contenant l'objet LesVisiteurs.
include 'visite/LesVisiteurs.php';
//on déclare l'objet LesVisiteurs avec comme paramètre
//le chemin vers la racine du dossier visite
$v=new LesVisiteurs("visite/");
//on insère la visite
$v->insertVisite();
//on affiche le module html contenant les visites
//avec comme paramètres le nombres de jours à afficher,
//au delà de ce nombre de jours les visites sont supprimées.
echo "<div style=\"width:80%;margin:auto;\">".$v->getVisites(3)."</div>";
?>
Conclusion :
Tout est stocké dans un fichier Xml, il est important de supprimer les visites fréquemment, car si vous avez 100 pages de visites, ça peut devenir assez lourd.
9 nov. 2011 à 19:03
Je commencerai pas dire que celui-ci n'est pas assé évolué pour l'utiliser à la place d'un analystic par exemple (que ce soit au niveau de l'information récupéré que des ressources utilisées), mais je ne remet pas en question l'intérêt pédagogique de ton projet (je place cette remarque seulement pour ce qui cherchait une solution toute faite pour leur site).
Je ne veux pas trop rentrer dans les détails mais j'aurais une autre approche que je vais te donner, libre à toi de le prendre comme remarque constructive : pour ma part je traiterai les log du serveur au lieu de collecté les données sur chaque page... car le serveur log déjà toute les informations que toi tu stock dans ton xml... l'intérêt est que tu ne surchage pas ton serveur (certe ma méthode n'est valable que si tu as accès aux log serveur mais c'est le cas dans 99% des cas et les 1% restant autant partir sur analystic plutot que de surcharger son serveur).
Si tu souhaite utiliser ma méthode tu n'as pas beaucoup de choses à refaire sur ta page "d'administration" (juste linker le log et te renseigner sur la structure des log apache).
Sinon je te conseillerai de récupérer plus d'information sur le client pour "rendre utile" ton projet (définition d'écran, type de connexion, localisation des ip, page référente, pourquoi pas un callback en ajax pour savoir le temps réel passé sur une page etc...) qui sont autant d'information non présente dans les log apache.
Enfin je finirai que malgré que je n'ai fait qu'un survol il me semble que ça soit bien codé.
J'espère que tu prendras tout ça de façon constructive et n'hésite pas à demander si t'as des question sur comment traiter les log d'apache depuis un script php (je d'amblé apache car ils sont très rares les serveur php non apache)
9 nov. 2011 à 19:42
Je trouve ton idée d'ajouter des variables intéressante, je n'avais pas penser au temps de connexion, je vois à peu près comment faire..., pour le définition d'écran et le reste je sais pas encore comment les récupérer mais je vais voir, mais pas ce soir, ce soir c'est call of duty ;)
Merci pour ta proposition de répondre à mes questions. bonne soirée.
10 nov. 2011 à 00:14
J'en profite pour rappeler une petite chose au passage : un script php peut accèder à "tout" le disque et non juste au répertoire web, il peut donc lire et écrire n'importe où... (par exemple chez ovh le "disque" reste cloisonné à une racine "/", la racine du site est "/www", et les log apache sont dans "/logs" voir "/logs/nomdusite" si tu en a plusieurs sur le même hébergement. Les données dans /logs/ ne sont pas accessible par internet mais ton script php y a libre accès... de même tu aurais pu protéger ton xml dans un répertoire "/MesXML" pour éviter qu'un pirate récupère les ips de tout tes clients etc...)
Ensuite le fichier log apache est un peu comme ton fichier xml... (il note tout les ip, heure et requête effectué sur ton site... et les logs sont automatiquement archivé donc pas la peine de gérer la suppression des données anciennes)
Enfin bon comme je disai cette approche à le mérite de n'utiliser aucune ressource ce qui est avantageux (et si on souhaite quelque chose de beaucoup plus poussé autant partir sur analystic qui est gratuit et surtout qui évite de consommer les ressources serveurs... car quand on commence à compter c'est qu'on a du monde et donc faut de la pluissance...)
Un autre avantage de réduire le travail serveur et la vitesse de chargement de ta page : chaque microseconde gagné rapporte beaucoup de place dans le classement des moteurs de recherche!
alors pour la définition d'écran je te donne toute de suite l'astuce : c'est pas du php, certe, mais du javascript... par contre pour identifier la source de connexion je vais te rediriger vers un très bon site qui propose une source interessante sur le whois-ip à modifier pour tes besoins (http://www.frameip.com/whois/ <- tu peux flaner sur le site il y a plein d'info interessante sur les réseaux)... pour la vitesse de connexion tu as 2 solutions mais la plus interessante pour toi est de le coder en même temps que ton callback ajax : tu sauve le timestamp au moment où tu envois la page au client et tu retire cette valeur du timestamp du premier callback que tu reçois et tu compare ce temps avec le poid total de ta page. (avec cette méthode la valeur ne sera pas super précise mais tu obtiendra l'indication la plus importante : le client met combien de temps pour charger la page... l'estimation du débit étant presque secondaire... derrière tu peux presque rajouter une alarme qui prévient l'admin en cas de page trop longue à charger... enfin bon c'est ce jors de petit rajout qui peuvent rendre ce projet très interessant)
voilà j'espère t'être utile ;) et n'hésite pas à demander (pour ma part mon manque de temps n'est pas du à call of duty mais à des enterrements de proches, des déménagements, et autres joyeuseté du jors... donc désolé de pas avoir décortiqué à fond ton code mais bon j'essai de distiller quand même un peu d'informations que j'espère utiles... en tout cas ça m'aérer les neuronnes)
12 nov. 2011 à 13:08
16 nov. 2011 à 08:57
Je post très rarement mais je suis souvent sur le site, et pour la première fois depuis longtemps je vois une remarque très constructive
a la suite d'un post... ( Section PHP ) A chaque fois certain s'en prenne plein la gueule au lieu d'un commentaire intéressant.
Donc merci a lynxtyle d'encouragé et d'aidé de cette façon ;)
Bye
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.