diff --git a/ecrire/inc_statistiques.php3 b/ecrire/inc_statistiques.php3 index 305c08168cae74da14ce1f1130dbb0c54eb77a1e..7954f3b72bd4e155e1e0b5790262c459c3fdadce 100644 --- a/ecrire/inc_statistiques.php3 +++ b/ecrire/inc_statistiques.php3 @@ -177,6 +177,7 @@ function calculer_n_referers($nb_referers) { $referer_insert = ""; $referer_update = ""; + $referer_vus = ""; while ($row = @spip_fetch_array($result)) { $visites = $row['visites']; @@ -184,8 +185,10 @@ function calculer_n_referers($nb_referers) { $referer_md5 = '0x'.$row['md5']; $referer_update[$visites][] = $referer_md5; $referer_insert[] = "('$date', '$referer', $referer_md5, $visites, $visites)"; - $referer_vus[] = $referer_md5; + $referer_vus .= "," . $referer_md5; } + if ($referer_vus) + $referer_vus = "referer_md5 IN (" . substr($referer_vus,1) . ")"; // Mise a jour de la base if (is_array($referer_update)) { @@ -202,9 +205,9 @@ function calculer_n_referers($nb_referers) { } // Ventiler ces referers article par article - $where = (is_array($referer_vus)) ? "AND referer_md5 IN (".join(',',$referer_vus).")" : ""; - $query = "SELECT COUNT(DISTINCT ip) AS visites, id_objet, referer, HEX(referer_md5) AS md5 ". - "FROM spip_referers_temp WHERE type='article' $where GROUP BY id_objet, referer_md5"; + $query = "SELECT COUNT(DISTINCT ip) AS visites, id_objet, referer, HEX(referer_md5) AS md5 FROM spip_referers_temp WHERE type='article'" + . ($referer_vus ? " AND $referer_vus" : '') + . " GROUP BY id_objet, referer_md5"; $result = spip_query($query); $referer_insert = ""; @@ -235,9 +238,8 @@ function calculer_n_referers($nb_referers) { } // Effacer les referers traites - if (is_array($referer_vus)) { - $query_effacer = "DELETE FROM spip_referers_temp WHERE referer_md5 IN (".join(",",$referer_vus).")"; - $result_effacer = spip_query($query_effacer); + if ($referer_vus) { + spip_query("DELETE FROM spip_referers_temp WHERE referer_md5 IN ($referer_vus)"); } return $tous ; diff --git a/inc-stats.php3 b/inc-stats.php3 index a4ab85bc5e66a647873bd1210cacc412e426d3b5..42e11e5b937c4c7a9e3a1d3b0bdfa494b0f770f6 100644 --- a/inc-stats.php3 +++ b/inc-stats.php3 @@ -45,7 +45,7 @@ function ecrire_stats() { $log_referer = $GLOBALS['HTTP_REFERER']; if (($url_site_spip<>'') AND strpos('-'.strtolower($log_referer), strtolower($url_site_spip)) AND !$GLOBALS['var_recherche']) $log_referer = ""; if ($log_referer) { - $referer_md5 = '0x'.substr(md5($log_referer), 0, 16); + $referer_md5 = '0x'.substr(md5($log_referer), 0, 15); $query = "INSERT IGNORE INTO spip_referers_temp (ip, referer, referer_md5, type, id_objet) ". "VALUES ($log_ip, '$log_referer', $referer_md5, '$log_type', $log_id_num)"; spip_query($query);