godferthomy Posté 3 Novembre 2006 Posté 3 Novembre 2006 Salut tout le monde! Voilà je suis depuis 2petits mois sur un projet de blogs, quand j'ai le temps à coté des études. J'ai implémenté la plupart de mes objectifs, mais étant donné qu'il est ouvert et que des amis y ont créé un blog, j'aimerais leur fournir des statistiques de mesure des visites. Seulement je ne sais pas du tout comment m'y prendre, je ne suis pas un expert du traitement de fichier et j'ai l'impression qu'en MySQL ce serait un peu lourd.. Mon objectif serait d'avoir les visites des 7 derniers jours, et les visites par mois, pour chaque blog. Chaque "blog" est dans un dossier à son nom. Le dossier contient en fait un fichier qui fait appel à un fichier à la racine et génère ensuite tout le blog, en parallèle avec des infos sur la base de données. En gros si vous voulez voir.. http://lolblogs.free.fr Les blogs seront alors.. -http://lolblogs.free.fr/unblog/, -http://lolblogs.free.fr/unautreblog/ etc.. Je ne sais vraiment pas comment m'y prendre pour gérer les visites par blog. Si vous pouviez m'aider.. PS : si il y a des curieux, je ne suis pas sûr que tout soit à la norme W3C, j'ai dû récemment faire des bêtises sans vérifier.. Merci d'avance à tous!
Dan Posté 3 Novembre 2006 Posté 3 Novembre 2006 Bonjour et bienvenue à bord ! Tu pourrais te baser sur un script compteur de visites tel que décrit dans l'article des publications: http://www.webmaster-hub.com/publication/C...-visiteurs.html Il doit être relativement simple à modifier Dan
Sebastien Posté 3 Novembre 2006 Posté 3 Novembre 2006 En solutions externes, il y a performancing.com qui est très bien et gratuit, mais ce n'est peut être pas ce que tu cherches ?
Régis Posté 3 Novembre 2006 Posté 3 Novembre 2006 Bonjour 'godferthomy', Et bienvenue sur Webmaster-HUB => c'est ton 1er post... Je ne suis pas un pro du développement et des blogs, mais une fois, j'étais tombé sur www.mybloglog.com qui permet, semble t-il, de compter les clics entrant et sortant d'un blog... J'en avais parlé dans ce post : Connaissez-vous mybloglog? et tu peux trouver quelques infos, là : MyBlogLog.com, pistez vos clics... A toi de voir, si cela corresponds à ton attente...
godferthomy Posté 3 Novembre 2006 Auteur Posté 3 Novembre 2006 Merci pour l'accueil Mon objectif étant de tout créer moi-même (en fait c'est plus un défi technique personnel à la base ces blogs), il est vrai que je préfèrerais la manière PHP sur mon site. Cependant je vais bien sûr consulter tous ces sites, les contenus ont l'air intéressant, reste à savoir s'il est facile de mesurer le trafic par blog (donc par dossier). Aussi merci pour les infos donc Je vous dirais ce que j'ai testé et ce qui a marché (si quelque chose marche bien )
godferthomy Posté 3 Novembre 2006 Auteur Posté 3 Novembre 2006 Ah oui j'en profite au passage pour poser une petite question hors-sujet mais ça évitera un sujet pour pas grand chose.. en fait c'est avec les retours à la ligne selon le système d'exploitation du serveur. Dans mes souvenirs c'est \r\n sous windows, \n sous linux et \r sous UNIX. Bref peu importe. Y a-t-il un moyen de régler le problème de comptabilité entre les serveurs? Parce que je conçois avec un serveur local sous windows pour uploader sur un serveur linux et c'est pas très pratique à chaque fois..
Jeanluc Posté 3 Novembre 2006 Posté 3 Novembre 2006 Bonjour, Fais tes uploads avec FTP en mode ASCII et ce sera FTP qui s'occupera de faire toutes les convertions nécessaires pour les fins de ligne. Jean-Luc
godferthomy Posté 4 Novembre 2006 Auteur Posté 4 Novembre 2006 Bon je me suis senti l'âme d'un guerrier alors j'ai pondu mon propre truc, qui devrait me suffir, n'ayant pas trouvé mon bonheur sur les sites. Donc voilà ce que j'ai fais: <?function incremente_tot($content) { if (preg_match("/total\: (.*?)\;/si",$content,$match)) { $content=preg_replace("/total\: (.*?)\;/si","total: ".($match[1]+1).";",$content); } else { $content="total: 1;".$content; } return $content;}function incremente_mois($content,$time='') { if (!$time) {$time=time();} if (preg_match("/m".date('m\\\/y',$time)."\: (.*?)\;/si",$content,$match)) { $content=preg_replace("/m".date('m\\\/y',$time)."\: (.*?)\;/si","m".date('m/y',$time).": ".($match[1]+1).";",$content); } else { $content=$content."\n\n"."m".date('m/y',$time).": 1;"; } return $content;}function incremente_jour($content,$time='') { if (!$time) {$time=time();} if (preg_match("/".date('d\\\/m\\\/y',$time)."\: (.*?)\;/si",$content,$match)) { $content=preg_replace("/".date('d\\\/m\\\/y',$time)."\: (.*?)\;/si","".date('d/m/y',$time).": ".($match[1]+1).";",$content); } else { $content=$content."\n".date('d/m/y',$time).": 1;"; } return $content;}$fichier="visites.stat";$inF = fopen($fichier,"r");if (filesize($fichier)>0) {$content=fread($inF,filesize($fichier));} else {$content='';}fclose($inF);$time=time();for ($i=0;$i<200;$i++) { $time+=60*60*24; for ($j=0;$j<rand(5,20);$j++) { $content=incremente_tot($content); $content=incremente_mois($content,$time); $content=incremente_jour($content,$time); }}$inF = fopen($fichier,"w+");fwrite($inF,$content);fclose($inF); Voilà c'est surement lourd mais ça s'exécute en 1 demi seconde.. après il y a surement de quoi optimiser. J'attends vos conseils. y a-t-il quelque chose de bon dans tout ça? C'est juste pour l'écriture, j'ai pas encore fait de quoi lire le résultat. Le résultat ici: http://lolblogs.free.fr/visites.stat Youpi ça avait pas envoyé en début d'aprèm (je raconte ma vie!! )
godferthomy Posté 4 Novembre 2006 Auteur Posté 4 Novembre 2006 Arf désolé.. je postes encore, j'ai pas trouvé de bouton pour éditer Voilà ma version "finale" (là s'arrêtent mes connaissances en traitement de chaines et de fichiers). Le résultat est disponible à l'adresse suivante: http://lolblogs.free.fr/visites.stat Quant à l'incrémentation, je ne l'ai pas implémentée encore, elle se fait ici: http://lolblogs.free.fr/test2.php function incremente_total($content) { if (preg_match("/total\: (.*?)\;/si",$content,$match)) { $content=preg_replace("/total\: (.*?)\;/si","total: ".($match[1]+1).";",$content); } else { $content="total: 1;".$content; } return $content;}function incremente_annee($content,$time='') { if (!$time) {$time=time();} if (preg_match("/année ".date('Y',$time)."\: (.*?)\;/si",$content,$match)) { $content=preg_replace("/année ".date('Y',$time)."\: (.*?)\;/si","année ".date('Y',$time).": ".($match[1]+1).";",$content); } else { $content=$content."\n\n\n"."### année ".date('Y',$time).": 1; ###"; } return $content;}function incremente_mois($content,$time='') { if (!$time) {$time=time();} if (preg_match("/mois ".date('m\\\/y',$time)."\: (.*?)\;/si",$content,$match)) { $content=preg_replace("/mois ".date('m\\\/y',$time)."\: (.*?)\;/si","mois ".date('m/y',$time).": ".($match[1]+1).";",$content); } else { $content=$content."\n\n"."*** mois ".date('m/y',$time).": 1; ***"; } return $content;}function incremente_jour($content,$time='') { if (!$time) {$time=time();} if (preg_match("/".date('d\\\/m\\\/y',$time)."\: (.*?)\;/si",$content,$match)) { $content=preg_replace("/".date('d\\\/m\\\/y',$time)."\: (.*?)\;/si","".date('d/m/y',$time).": ".($match[1]+1).";",$content); } else { $content=$content."\n".date('d/m/y',$time).": 1;"; } return $content;}function ajout_compteur($time='') { if (!$time) {$time=time();} $fichier="visites.stat"; $inF = fopen($fichier,"r"); if (filesize($fichier)>0) {$content=fread($inF,filesize($fichier));} else {$content='';} fclose($inF); $content=incremente_total($content); $content=incremente_annee($content,$time); $content=incremente_mois($content,$time); $content=incremente_jour($content,$time); $inF = fopen($fichier,"w+"); fwrite($inF,$content); fclose($inF);}function verif_visite() { if(is_null($_COOKIE['visite'])) { setcookie("visite","ok"); ajout_compteur(); return FALSE; } else { return TRUE; }} Voilà je retiendrais mes ardeurs pour la suite, j'attendrais des réponses avant de reposter.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant