From 507fba508eb874c95e0664574bc6de441781966a Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Fri, 23 Nov 2007 16:32:01 +0000
Subject: [PATCH] =?UTF-8?q?Eviter=20une=20erreur=20fatale=20dans=20certain?=
 =?UTF-8?q?es=20version=20de=20PHP=20dans=20le=20calcul=20de=20'''profonde?=
 =?UTF-8?q?ur=5Furl'''=20(Christian=20M.)=20et=20tant=20qu'=C3=A0=20faire,?=
 =?UTF-8?q?=20si=20la=20profondeur=20est=20n=C3=A9gative=20c'est=20que=20l?=
 =?UTF-8?q?a=20meta=5Fadresse=5Fsite=20est=20faux,=20eviter=20la=20bard?=
 =?UTF-8?q?=C3=A9e=20de=20warnings.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc/utils.php | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index e02d7e6357..c16075b29f 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -1162,14 +1162,18 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) {
 	// nombre de repertoires depuis la racine
 	// on compare a l'adresse donnee en meta ; si celle-ci est fausse
 	// le calcul est faux. Meilleure idee ??
-	$GLOBALS['profondeur_url'] = !_DIR_RESTREINT
-		? 1
-		: ((isset($_SERVER['REQUEST_URI']) AND isset($GLOBALS['meta']['adresse_site']))
-			? substr_count(reset(explode('?', $_SERVER['REQUEST_URI'])),'/')
-				- substr_count($GLOBALS['meta']['adresse_site'],'/') + 1
-			: 0
-		);
-
+	if (!_DIR_RESTREINT)
+		$GLOBALS['profondeur_url'] = 1;
+	else {
+		$uri = isset($_SERVER['REQUEST_URI']) ? explode('?', $_SERVER['REQUEST_URI']) : '';
+		if (!$uri OR  !isset($GLOBALS['meta']['adresse_site']))
+			$GLOBALS['profondeur_url'] = 0;
+		else {
+			$GLOBALS['profondeur_url'] = max(0, 1+
+				substr_count($uri[0], '/')
+				- substr_count($GLOBALS['meta']['adresse_site'],'/'));
+		}
+	}
 	// s'il y a un cookie ou PHP_AUTH, initialiser auteur_session
 	if (_FILE_CONNECT) verifier_visiteur();
 
-- 
GitLab