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Ž : $val_popularite%"; + echo "<br>popularité : $val_popularite%"; } else { echo "<font size=1>"; - echo "<br>popularitŽ du site : "; - echo round(max(1,lire_meta('popularite_total'))); + echo "<br>popularité du site : "; + 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écurisée) est à votre disposition : \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