Firefox non comptabilisé dans le module Statistics 7.5 FR
Aller à la page Précédente  1, 2, 3  Suivante
PHP-Nuke France - CE -> Bugs: Fixés

Auteur: jessclubLocalisation: Alsace (68) MessagePosté le: 09.09.2005, 08:16:20    Sujet du message:

Re,

Après vérification je me rend compte que j'ai effectivement omis un petit détail dans les modifications que j'avais réalisé Embarassed

Editer le fichier /modules/Statistics/index.php

La fonction qui nous intéresse est celle qui va relever dans la base de donnée les différents éléments donc "function Stats_Main()"
A l'origine elle se présente sous cette forme :
Code:
function Stats_Main() {
    global $prefix, $db, $startdate, $sitename, $ThemeSel, $user_prefix, $Version_Num, $module_name, $textcolor2;
    include("header.php");
    $result = $db->sql_query("SELECT type, var, count from ".$prefix."_counter order by type desc");
    while ($row = $db->sql_fetchrow($result)) {
      $type = stripslashes(check_html($row['type'], "nohtml"));
      $var = stripslashes(check_html($row['var'], "nohtml"));
      $count = intval($row['count']);
      if(($type == "total") && ($var == "hits")) {
         $total = $count;
      } elseif($type == "browser") {
         if($var == "Netscape") {
            $netscape[] = $count;
            $netscape[] =  substr(100 * $count / $total, 0, 5);
         } elseif($var == "MSIE") {
            $msie[] = $count;
            $msie[] =  substr(100 * $count / $total, 0, 5);
         } elseif($var == "Konqueror") {
            $konqueror[] = $count;
            $konqueror[] =  substr(100 * $count / $total, 0, 5);
         } elseif($var == "Opera") {
            $opera[] = $count;
            $opera[] =  substr(100 * $count / $total, 0, 5);
         } elseif($var == "Lynx") {
            $lynx[] = $count;
            $lynx[] =  substr(100 * $count / $total, 0, 5);
         } elseif($var == "Bot") {
            $bot[] = $count;
            $bot[] =  substr(100 * $count / $total, 0, 5);
         } elseif(($type == "browser") && ($var == "Other")) {
            $b_other[] = $count;
            $b_other[] =  substr(100 * $count / $total, 0, 5);
         }

Ce n'est que le début avec consultation et interprétation des éléments relatifs au navigateur. Vous constaterez que là aussi les éléments relatifs à Firefox sont manquant.

C'est ceci qui est à ajouter :
Code:
} elseif($type == "browser") {
         if($var == "FireFox") {
             $firefox[] = $count;
             $firefox[] = substr(100 * $count / $total, 0, 5);


Voici le total avec la partie ajoutée :
Code:
function Stats_Main() {
    global $prefix, $db, $startdate, $sitename, $ThemeSel, $user_prefix, $Version_Num, $module_name, $textcolor2;
    include("header.php");
    $result = $db->sql_query("SELECT type, var, count from ".$prefix."_counter order by type desc");
    while ($row = $db->sql_fetchrow($result)) {
      $type = stripslashes(check_html($row['type'], "nohtml"));
      $var = stripslashes(check_html($row['var'], "nohtml"));
      $count = intval($row['count']);
      if(($type == "total") && ($var == "hits")) {
         $total = $count;
      } elseif($type == "browser") {
         if($var == "FireFox") {
             $firefox[] = $count;
             $firefox[] = substr(100 * $count / $total, 0, 5);
         } elseif($var == "Netscape") {
             $netscape[] = $count;
             $netscape[] = substr(100 * $count / $total, 0, 5);
         } elseif($var == "MSIE") {
            $msie[] = $count;
            $msie[] =  substr(100 * $count / $total, 0, 5);
         } elseif($var == "Konqueror") {
            $konqueror[] = $count;
            $konqueror[] =  substr(100 * $count / $total, 0, 5);
         } elseif($var == "Opera") {
            $opera[] = $count;
            $opera[] =  substr(100 * $count / $total, 0, 5);
         } elseif($var == "Lynx") {
            $lynx[] = $count;
            $lynx[] =  substr(100 * $count / $total, 0, 5);
         } elseif($var == "Bot") {
            $bot[] = $count;
            $bot[] =  substr(100 * $count / $total, 0, 5);
         } elseif(($type == "browser") && ($var == "Other")) {
            $b_other[] = $count;
            $b_other[] =  substr(100 * $count / $total, 0, 5);
         }


ça swing

A+

Gérald

Auteur: focusLocalisation: Bulle (Suisse) MessagePosté le: 09.09.2005, 09:17:14    Sujet du message:

Salut à vous et merci pour le temps consacré à la résolution de ce petit problème.

Je viens de consulter les infos fournies pas jessclub et je constate que l'îndex.php du module statistics a déjà été modifié (je ne l'ai pas édité depuis son installation originale) Very Happy

Mais en surfant sur le site auquel je fais référence, les stats ne se modifient pas alors que j'ai appliqué la première modif (qui est l'objet du thread) voici 3 jours maintenant. Crying or Very Sad

Il doit encore y avoir un truc qui coince quelque part, mais où ?

salutations

Auteur: jessclubLocalisation: Alsace (68) MessagePosté le: 09.09.2005, 10:48:31    Sujet du message:

Avec PHPMYADMIN tu vas dans ta base de données.
Tu affiches le contenu de la table "nuke_counter"
Tu regardes ce qui a au niveau chiffre au niveau de FireFox dans la colone "count".
Si c'est vide c'est que tu n'as pas fait correctement la première modification dans le fichier /includes/counter.php car j'ai visité ton site avec Firefox il y a pas 5 minutes.

Voila ce qui devrait se trouver dans cette table (a par d'autres chiffres bien entendu :
Citation:

var count
total hits 187063
browser FireFox 4893
browser Lynx 0
browser MSIE 56818
browser Opera 167
browser Konqueror 214
browser Netscape 92408
browser Bot 27265
browser Other 5298
os Windows 123703
os Linux 7704
os Mac 2715
os FreeBSD 0
os SunOS 1
os IRIX 0
os BeOS 0
os OS/2 0
os AIX 0
os Other 52940


A+

Gérald

Auteur: focusLocalisation: Bulle (Suisse) MessagePosté le: 09.09.2005, 11:37:21    Sujet du message:

salut,

J'ai vu que tu m'avais rendu visite... Very Happy

malheureusement pas traces de Firefox dans ma base de données Crying or Very Sad Evil or Very Mad je vais donc te remontrer le counter.php pour voir s'il est ok, mais à mon avis c'est le cas...

Code:


if (stristr($_SERVER['SCRIPT_NAME'], "counter.php")) {
    Header("Location: index.php");
    die();
}
global $prefix, $db;

/* Get the Browser data */

if((ereg("Nav", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Gold", $_SERVER["HTTP_USER_AGENT"])) || (ereg("X11", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Netscape", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("MSIE", $_SERVER["HTTP_USER_AGENT"]) AND (!ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])))) $browser = "Netscape";
elseif(ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE";
elseif(ereg("Firefox", $_SERVER["HTTP_USER_AGENT"])) $browser = "FireFox";
elseif(ereg("Lynx", $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx";
elseif(ereg("Opera", $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera";
elseif(ereg("WebTV", $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV";
elseif(ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror";
elseif((eregi("bot", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Google", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Slurp", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Scooter", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Spider", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Infoseek", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot";
else $browser = "Other";

/* Get the Operating System data */

if(ereg("Win", $_SERVER["HTTP_USER_AGENT"])) $os = "Windows";
elseif((ereg("Mac", $_SERVER["HTTP_USER_AGENT"])) || (ereg("PPC", $_SERVER["HTTP_USER_AGENT"]))) $os = "Mac";
elseif(ereg("Linux", $_SERVER["HTTP_USER_AGENT"])) $os = "Linux";
elseif(ereg("FreeBSD", $_SERVER["HTTP_USER_AGENT"])) $os = "FreeBSD";
elseif(ereg("SunOS", $_SERVER["HTTP_USER_AGENT"])) $os = "SunOS";
elseif(ereg("IRIX", $_SERVER["HTTP_USER_AGENT"])) $os = "IRIX";
elseif(ereg("BeOS", $_SERVER["HTTP_USER_AGENT"])) $os = "BeOS";
elseif(ereg("OS/2", $_SERVER["HTTP_USER_AGENT"])) $os = "OS/2";
elseif(ereg("AIX", $_SERVER["HTTP_USER_AGENT"])) $os = "AIX";
else $os = "Other";

/* Save on the databases the obtained values */

$db->sql_query("UPDATE ".$prefix."_counter SET count=count+1 WHERE (type='total' AND var='hits') OR (var='$browser' AND type='browser') OR (var='$os' AND type='os')");
update_points(13);

/* Start Detailed Statistics */

$dot = date("d-m-Y-H");
$now = explode ("-",$dot);
$nowHour = $now[3];
$nowYear = $now[2];
$nowMonth = $now[1];
$nowDate = $now[0];
$sql = "SELECT year FROM ".$prefix."_stats_year WHERE year='$nowYear'";
$resultyear = $db->sql_query($sql);
$jml = $db->sql_numrows($resultyear);
if ($jml <= 0) {
    $sql = "INSERT INTO ".$prefix."_stats_year VALUES ('$nowYear','0')";
    $db->sql_query($sql);
    for ($i=1;$i<=12;$i++) {
   $db->sql_query("INSERT INTO ".$prefix."_stats_month VALUES ('$nowYear','$i','0')");
   if ($i == 1) $TotalDay = 31;
   if ($i == 2) {
       if (date("L") == true) {
      $TotalDay = 29;
       } else {
      $TotalDay = 28;
       }
   }
   if ($i == 3) $TotalDay = 31;
   if ($i == 4) $TotalDay = 30;
   if ($i == 5) $TotalDay = 31;
   if ($i == 6) $TotalDay = 30;
   if ($i == 7) $TotalDay = 31;
   if ($i == 8) $TotalDay = 31;
   if ($i == 9) $TotalDay = 30;
   if ($i == 10) $TotalDay = 31;
   if ($i == 11) $TotalDay = 30;
   if ($i == 12) $TotalDay = 31;
   for ($k=1;$k<=$TotalDay;$k++) {
       $db->sql_query("INSERT INTO ".$prefix."_stats_date VALUES ('$nowYear','$i','$k','0')");
   }
    }
}

$sql = "SELECT hour FROM ".$prefix."_stats_hour WHERE (year='$nowYear') AND (month='$nowMonth') AND (date='$nowDate')";
$result = $db->sql_query($sql);
$numrows = $db->sql_numrows($result);

if ($numrows <= 0) {
    for ($z = 0;$z<=23;$z++) {
   $db->sql_query("INSERT INTO ".$prefix."_stats_hour VALUES ('$nowYear','$nowMonth','$nowDate','$z','0')");
    }
}

$db->sql_query("UPDATE ".$prefix."_stats_year SET hits=hits+1 WHERE year='$nowYear'");
$db->sql_query("UPDATE ".$prefix."_stats_month SET hits=hits+1 WHERE (year='$nowYear') AND (month='$nowMonth')");
$db->sql_query("UPDATE ".$prefix."_stats_date SET hits=hits+1 WHERE (year='$nowYear') AND (month='$nowMonth') AND (date='$nowDate')");
$db->sql_query("UPDATE ".$prefix."_stats_hour SET hits=hits+1 WHERE (year='$nowYear') AND (month='$nowMonth') AND (date='$nowDate') AND (hour='$nowHour')");



Désolé, c'est un peu long, je sais... mais c'est pour être certain qu'il y a tout... Est-ce que la version de Firefox peut avoir une quelconque importance ? je suis en 1.0.6.... Mais pour le reste, je ne vois pas...

Auteur: jessclubLocalisation: Alsace (68) MessagePosté le: 09.09.2005, 12:01:44    Sujet du message:

La version n'a aucune importance.
J'avoue ne pas comprendre pourquoi chez moi cela fonctionne parfaitement ainsi et pas chez toi.

Je te conseille le test suivant : Ouvre la base de données et affiche la table en question.
En parallèle visite ton site avec Firefox en passant d'un module à l'autres et réactualise de temps en temps l'affichage de la table pour voir sous quel navigateur sont comptabilisés tes clics.



PHP-Nuke France - CE -> Bugs: Fixés

Toutes les heures sont au format GMT + 2 Heures

Aller à la page Précédente  1, 2, 3  Suivante
Page 2 sur 3


>> Fermer cette Page <<