From 8d20150a84d2975e60563b577b8f3f3339d02fb7 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Fri, 3 Dec 2004 21:08:31 +0000 Subject: [PATCH] =?UTF-8?q?bug=20du=20md5=20des=20visites=20non=20repr?= =?UTF-8?q?=C3=A9sent=C3=A9=20par=20SQL=20car=20>=202^63?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/inc_statistiques.php3 | 16 +++++++++------- inc-stats.php3 | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ecrire/inc_statistiques.php3 b/ecrire/inc_statistiques.php3 index 305c08168c..7954f3b72b 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 a4ab85bc5e..42e11e5b93 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); -- GitLab