From a1129117e711ad78648d40b076acf3bcb67b7725 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Sat, 31 Aug 2002 22:27:43 +0000
Subject: [PATCH] =?UTF-8?q?Voici=20le=20=3Fbonjour=3Doui=20sans=20faille?=
 =?UTF-8?q?=20:=20l'id=C3=A9e=20est=20que,=20si=20on=20constate=20un=20ech?=
 =?UTF-8?q?ec=20de=20login=20malgr=C3=A9=20le=20bonjour=3Doui,=20on=20envo?=
 =?UTF-8?q?ie=20sur=20spip=5Fcookie,=20qui=20pose=20un=20cookie=20et=20ren?=
 =?UTF-8?q?voit=20vers=20spip=5Flogin,=20lequel=20teste=20le=20cookie=20qu?=
 =?UTF-8?q?i=20vient=20d'=C3=AAtre=20pos=C3=A9.=20S'il=20est=20l=C3=A0,=20?=
 =?UTF-8?q?c'est=20qu'il=20n'y=20a=20pas=20d'=C3=A9chec=20de=20cookie=20(o?=
 =?UTF-8?q?n=20vient=20d'un=20bookmark),=20s'il=20n'est=20pas=20l=C3=A0,?=
 =?UTF-8?q?=20c'est=20av=C3=A9r=C3=A9,=20et=20on=20propose=20l'auth=5Fhttp?=
 =?UTF-8?q?.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

+ correction d'un bug de redirection en auth_http.

(et deux accents)
---
 ecrire/inc_auth.php3             |  8 ++++----
 ecrire/statistiques_visites.php3 |  6 +++---
 inc-login.php3                   | 10 ++++++++--
 spip_cookie.php3                 | 12 +++++++++++-
 4 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/ecrire/inc_auth.php3 b/ecrire/inc_auth.php3
index 5fc55e62b2..fb569f990f 100644
--- a/ecrire/inc_auth.php3
+++ b/ecrire/inc_auth.php3
@@ -114,10 +114,10 @@ function auth() {
 
 	// Tentative de login echec
 	else if ($GLOBALS['bonjour'] == 'oui') { 
-		if ($GLOBALS['essai_cookie'] == 'oui')
-			@header("Location: ../spip_login.php3?var_echec_cookie=oui");
-		else
-			@header("Location: ../spip_login.php3");
+		$link = new Link("../spip_cookie.php3?test_echec_cookie=oui");
+		$clean_link->delVar('bonjour');
+		$link->addVar('url', 'ecrire/'.$clean_link->getUrl());
+		@header("Location: ".$link->getUrl());
 		exit;
 	}
 
diff --git a/ecrire/statistiques_visites.php3 b/ecrire/statistiques_visites.php3
index a386102add..362b4604ec 100644
--- a/ecrire/statistiques_visites.php3
+++ b/ecrire/statistiques_visites.php3
@@ -359,11 +359,11 @@ if (count($log)>0){
 		echo "<b>total : $total_absolu</b>";
 		
 		if ($id_article) {
-			echo "<br>popularitŽ&nbsp;: $val_popularite%";
+			echo "<br>popularit&eacute;&nbsp;: $val_popularite%";
 		} else {
 			echo "<font size=1>";
-			echo "<br>popularitŽ du site&nbsp;: ";
-			echo round(max(1,lire_meta('popularite_total')));
+			echo "<br>popularit&eacute; du site&nbsp;: ";
+			echo ceil(lire_meta('popularite_total'));
 			echo "</font>";
 		}
 		
diff --git a/inc-login.php3 b/inc-login.php3
index 27eb5296d3..5e066f3466 100644
--- a/inc-login.php3
+++ b/inc-login.php3
@@ -55,10 +55,16 @@ function ferme_login() {
 function login($cible = '', $prive = 'prive', $message_login='') {
 	$login = $GLOBALS['var_login'];
 	$erreur = $GLOBALS['var_erreur'];
-	$echec_cookie = $GLOBALS['var_echec_cookie'];
 	$essai_auth_http = $GLOBALS['var_essai_auth_http'];
 	$logout = $GLOBALS['var_logout'];
 
+	// en cas d'echec de cookie, inc_auth a renvoye vers spip_cookie qui
+	// a tente de poser un cookie ; s'il n'est pas la, c'est echec cookie
+	// s'il est la, c'est probablement un bookmark sur bonjour=oui,
+	// et pas un echec cookie.
+	if ($GLOBALS['var_echec_cookie'])
+		$echec_cookie = ($GLOBALS['spip_session'] != 'test_echec_cookie');
+
 	global $auteur_session;
 	global $spip_session, $PHP_AUTH_USER;
 	global $spip_admin;
@@ -200,7 +206,7 @@ function login($cible = '', $prive = 'prive', $message_login='') {
 		echo "de connexion (moins s&eacute;curis&eacute;e) est &agrave; votre disposition&nbsp;: \n";
 		echo "<input type='hidden' name='essai_auth_http' value='oui'> ";
 		$url = $cible->getUrl();
-		echo "<input type='hidden' name='var_url' value='$url'>\n";
+		echo "<input type='hidden' name='url' value='$url'>\n";
 		echo "<div align='right'><input type='submit' name='submit' class='spip_bouton' value='Identification sans cookie'></div>\n";
 		echo "</fieldset></form>\n";
 	}
diff --git a/spip_cookie.php3 b/spip_cookie.php3
index b08fd4f24f..f82d9ab235 100644
--- a/spip_cookie.php3
+++ b/spip_cookie.php3
@@ -56,6 +56,17 @@ if ($logout) {
 }
 
 
+// en cas de login sur bonjour=oui, on tente de poser un cookie
+// puis de passer a spip_login qui diagnostiquera l'echec de cookie
+// le cas echeant.
+if ($test_echec_cookie == 'oui') {
+	setcookie('spip_session', 'test_echec_cookie');
+	$link = new Link("spip_login.php3?var_echec_cookie=oui");
+	$link->addVar("var_url", $cible->getUrl());
+	@header("Location: ".$link->getUrl());
+	exit;
+}
+
 // tentative de login
 unset ($cookie_session);
 if ($essai_login == "oui") {
@@ -102,7 +113,6 @@ if ($essai_login == "oui") {
 		@spip_query($query);
 		if (ereg("ecrire/", $cible->getUrl())) {
 			$cible->addVar('bonjour','oui');
-			$cible->addVar('essai_cookie','oui');
 		}
 	}
 	else {
-- 
GitLab