From b229d7070198568cd28df7af0efdca632d8f41f4 Mon Sep 17 00:00:00 2001
From: ARNO* <arno@rezo.net>
Date: Thu, 24 Jan 2008 11:55:09 +0000
Subject: [PATCH] $_SERVER["HTTP_REFERER"] ne fonctionne pas partout

---
 ecrire/public/stats.php | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/ecrire/public/stats.php b/ecrire/public/stats.php
index 5c9a66879c..13182678e1 100644
--- a/ecrire/public/stats.php
+++ b/ecrire/public/stats.php
@@ -14,7 +14,10 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 // http://doc.spip.org/@public_stats_dist
 function public_stats_dist() {
-
+	// $_SERVER["HTTP_REFERER"] ne fonctionne pas partout
+	if (isset($_SERVER['HTTP_REFERER'])) $referer = $_SERVER['HTTP_REFERER'];
+	else if (isset($GLOBALS["HTTP_SERVER_VARS"]["HTTP_REFERER"])) $referer = $GLOBALS["HTTP_SERVER_VARS"]["HTTP_REFERER"];
+	
 	// Rejet des robots (qui sont pourtant des humains comme les autres)
 	if (preg_match(
 	',google|yahoo|msnbot|crawl|lycos|voila|slurp|jeeves|teoma,i',
@@ -31,14 +34,14 @@ function public_stats_dist() {
 
 	// Analyse du referer
 	$log_referer = '';
-	if (isset($_SERVER['HTTP_REFERER'])) {
+	if (isset($referer)) {
 		$url_site_spip = preg_replace(',/$,', '',
 			preg_replace(',^(https?://)?(www\.)?,i', '',
 			url_de_base()));
 		if (!(($url_site_spip<>'')
-		AND strpos('-'.strtolower($_SERVER['HTTP_REFERER']), strtolower($url_site_spip))
-		AND strpos($_SERVER['HTTP_REFERER'],"recherche=")===false)) {
-			$log_referer = $_SERVER['HTTP_REFERER'];
+		AND strpos('-'.strtolower($referer), strtolower($url_site_spip))
+		AND strpos($referer,"recherche=")===false)) {
+			$log_referer =$referer;
 		}
 	}
 
-- 
GitLab