Skip to content
Extraits de code Groupes Projets
Valider a1129117 rédigé par Fil's avatar Fil
Parcourir les fichiers

Voici le ?bonjour=oui sans faille : l'idée est que, si on constate un echec de...

Voici le ?bonjour=oui sans faille : l'idée est que, si on constate un echec de login malgré le bonjour=oui, on envoie sur spip_cookie, qui pose un cookie et renvoit vers spip_login, lequel teste le cookie qui vient d'être posé. S'il est là, c'est qu'il n'y a pas d'échec de cookie (on vient d'un bookmark), s'il n'est pas là, c'est avéré, et on propose l'auth_http.

+ correction d'un bug de redirection en auth_http.

(et deux accents)
parent 01348484
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -114,10 +114,10 @@ function auth() { ...@@ -114,10 +114,10 @@ function auth() {
// Tentative de login echec // Tentative de login echec
else if ($GLOBALS['bonjour'] == 'oui') { else if ($GLOBALS['bonjour'] == 'oui') {
if ($GLOBALS['essai_cookie'] == 'oui') $link = new Link("../spip_cookie.php3?test_echec_cookie=oui");
@header("Location: ../spip_login.php3?var_echec_cookie=oui"); $clean_link->delVar('bonjour');
else $link->addVar('url', 'ecrire/'.$clean_link->getUrl());
@header("Location: ../spip_login.php3"); @header("Location: ".$link->getUrl());
exit; exit;
} }
......
...@@ -359,11 +359,11 @@ if (count($log)>0){ ...@@ -359,11 +359,11 @@ if (count($log)>0){
echo "<b>total : $total_absolu</b>"; echo "<b>total : $total_absolu</b>";
if ($id_article) { if ($id_article) {
echo "<br>popularit&nbsp;: $val_popularite%"; echo "<br>popularit&eacute;&nbsp;: $val_popularite%";
} else { } else {
echo "<font size=1>"; echo "<font size=1>";
echo "<br>popularit du site&nbsp;: "; echo "<br>popularit&eacute; du site&nbsp;: ";
echo round(max(1,lire_meta('popularite_total'))); echo ceil(lire_meta('popularite_total'));
echo "</font>"; echo "</font>";
} }
......
...@@ -55,10 +55,16 @@ function ferme_login() { ...@@ -55,10 +55,16 @@ function ferme_login() {
function login($cible = '', $prive = 'prive', $message_login='') { function login($cible = '', $prive = 'prive', $message_login='') {
$login = $GLOBALS['var_login']; $login = $GLOBALS['var_login'];
$erreur = $GLOBALS['var_erreur']; $erreur = $GLOBALS['var_erreur'];
$echec_cookie = $GLOBALS['var_echec_cookie'];
$essai_auth_http = $GLOBALS['var_essai_auth_http']; $essai_auth_http = $GLOBALS['var_essai_auth_http'];
$logout = $GLOBALS['var_logout']; $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 $auteur_session;
global $spip_session, $PHP_AUTH_USER; global $spip_session, $PHP_AUTH_USER;
global $spip_admin; global $spip_admin;
...@@ -200,7 +206,7 @@ function login($cible = '', $prive = 'prive', $message_login='') { ...@@ -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 "de connexion (moins s&eacute;curis&eacute;e) est &agrave; votre disposition&nbsp;: \n";
echo "<input type='hidden' name='essai_auth_http' value='oui'> "; echo "<input type='hidden' name='essai_auth_http' value='oui'> ";
$url = $cible->getUrl(); $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 "<div align='right'><input type='submit' name='submit' class='spip_bouton' value='Identification sans cookie'></div>\n";
echo "</fieldset></form>\n"; echo "</fieldset></form>\n";
} }
......
...@@ -56,6 +56,17 @@ if ($logout) { ...@@ -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 // tentative de login
unset ($cookie_session); unset ($cookie_session);
if ($essai_login == "oui") { if ($essai_login == "oui") {
...@@ -102,7 +113,6 @@ if ($essai_login == "oui") { ...@@ -102,7 +113,6 @@ if ($essai_login == "oui") {
@spip_query($query); @spip_query($query);
if (ereg("ecrire/", $cible->getUrl())) { if (ereg("ecrire/", $cible->getUrl())) {
$cible->addVar('bonjour','oui'); $cible->addVar('bonjour','oui');
$cible->addVar('essai_cookie','oui');
} }
} }
else { else {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter