From ea99f43b43f4f238882a1af24988ba2ec3bbfb8f Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Wed, 3 Jul 2002 23:57:42 +0000 Subject: [PATCH] suite restauration espace public --- inc-forum.php3 | 23 ++++++++----------- inc-public.php3 | 9 +++++--- inc-stats.php3 | 7 ++++-- spip_cookie.php3 | 58 +++++++++++++++++++++++++++++++++++++++++------- 4 files changed, 70 insertions(+), 27 deletions(-) diff --git a/inc-forum.php3 b/inc-forum.php3 index 2992e2533f..22235ea1fe 100644 --- a/inc-forum.php3 +++ b/inc-forum.php3 @@ -140,7 +140,7 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd $ret .= "\n<a name='formulaire_forum'></a>\n"; $ret .= "\n<FORM ACTION='$lien' METHOD='post'>"; - $ret .= "\n<B>VOTRE MESSAGE...</B><p>"; + //$ret .= "\n<B>VOTRE MESSAGE...</B><p>"; if ($forums_publics == "pri") { $ret.= "Ce forum est modéré à priori : votre contribution n'apparaîtra qu'après avoir été validée par un administrateur du site.<P>"; @@ -196,7 +196,7 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd - if (!$nouveau_document){ + if (!$nouveau_document AND $afficher_texte != 'non'){ $ret .= "<div class='spip_encadrer'>"; if ($afficher_texte != "non"){ $ret .= "<font size=4 color='#aaaaaa'><b>".propre($titre)."</b></font>"; @@ -230,17 +230,9 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd $ret .= "</div>\n<p>"; } - /* - if ($forums_publics == "pri") { - $ret.= "Ce forum est modéré à priori : votre contribution n'apparaîtra qu'après avoir été validée par un administrateur du site.<P>"; - } + $ret .= "\n"; - if ($forums_publics == "abo") { - $ret.= '<? include("inc-forum.php3"); forum_abonnement(); ?'.'>'; - } - */ - $ret .= "\n"; $seed = (double) (microtime() + 1) * time() * 1000000; @mt_srand($seed); @@ -385,7 +377,9 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd $ret .= "\n<INPUT TYPE='text' CLASS='forml' NAME='email_auteur' VALUE=\"$email_auteur\" SIZE='40'></div>"; } - $ret .= "\n<p><DIV ALIGN='right'><INPUT TYPE='submit' NAME='Valider' CLASS='spip_bouton' VALUE='Voir ce message avant de le poster'></DIV>"; + if ($afficher_texte !="non") $ret .= "\n<p><DIV ALIGN='right'><INPUT TYPE='submit' NAME='Valider' CLASS='spip_bouton' VALUE='Voir ce message avant de le poster'></DIV>"; + else $ret .= "\n<p><DIV ALIGN='right'><INPUT TYPE='submit' NAME='Valider' CLASS='spip_bouton' VALUE='Valider ce choix'></DIV>"; + $ret .= "</FORM>"; return $ret; @@ -398,7 +392,8 @@ function ajout_forum() { global $forum_id_rubrique, $forum_id_parent, $forum_id_article, $forum_id_breve, $forum_id_auteur, $forum_id_syndic, $alea, $hash; global $hash_email, $email_forum_abo, $pass_forum_abo, $ajouter_mot; global $HTTP_HOST, $REQUEST_URI, $HTTP_COOKIE_VARS, $REMOTE_ADDR; - + $afficher_texte = $GLOBALS['afficher_texte']; + if (!$GLOBALS['db_ok']) { die ("<h4>Problème de base de données, votre message n'a pas été enregistré.</h4>"); } @@ -538,7 +533,7 @@ function ajout_forum() { - if (strlen($confirmer) > 0) { + if (strlen($confirmer) > 0 OR ($afficher_texte=='non' AND $ajouter_mot)) { spip_query("UPDATE spip_forum SET statut=\"$etat\" WHERE id_forum='$id_message'"); diff --git a/inc-public.php3 b/inc-public.php3 index 2fcc303e5b..1f3c403e79 100644 --- a/inc-public.php3 +++ b/inc-public.php3 @@ -58,6 +58,7 @@ $fichier_requete = $REQUEST_URI; $fichier_requete = strtr($fichier_requete, '?', '&'); $fichier_requete = eregi_replace('&(submit|valider|(var_[^=&]*)|recalcul)=[^&]*', '', $fichier_requete); + $fichier_cache = generer_nom_fichier_cache($fichier_requete); $chemin_cache = "CACHE/".$fichier_cache; @@ -77,9 +78,9 @@ else { // Authentification, le cas echeant // $auteur_session = ''; -if ($cookie = $HTTP_COOKIE_VARS['spip_session']) { +if ($HTTP_COOKIE_VARS['spip_session'] OR $PHP_AUTH_USER) { include_ecrire ("inc_session.php3"); - verifier_session($cookie); + verifier_visiteur(); } @@ -331,7 +332,9 @@ if ($spip_session) { if ($id_article AND lire_meta("activer_statistiques") != "non" AND !$flag_preserver) { include_ecrire("inc_connect.php3"); include_local ("inc-stats.php3"); - if ($db_ok) ecrire_stats(); + if ($db_ok) $stats = ecrire_stats(); + + if ($admin_ok) echo $stats; } diff --git a/inc-stats.php3 b/inc-stats.php3 index 9b514ee1d6..cc8d793535 100644 --- a/inc-stats.php3 +++ b/inc-stats.php3 @@ -10,6 +10,7 @@ function ecrire_stats() { global $id_article; global $admin_ok; + $my_ref = $HTTP_REFERER; $my_ref = "\n".substr(md5($my_ref), 0, 15); @@ -19,7 +20,7 @@ function ecrire_stats() { if ($row = mysql_fetch_array($result)) { $visites = $row['visites']; $referers = $row['referers']; - + $visites++; if (!ereg($my_ref, $referers)) { @@ -31,7 +32,9 @@ function ecrire_stats() { } $num_ref = strlen($referers) / 16; - if ($admin_ok) echo "<small>[$visites visites - $num_ref referers]</small>"; + if ($admin_ok) { + return "<small>[$visites visites - $num_ref referers]</small>"; + } } } diff --git a/spip_cookie.php3 b/spip_cookie.php3 index b605bbc551..d5fd066e35 100644 --- a/spip_cookie.php3 +++ b/spip_cookie.php3 @@ -5,6 +5,22 @@ include_ecrire ("inc_connect.php3"); include_ecrire ("inc_meta.php3"); include_ecrire ("inc_session.php3"); +// si demande auth_http +if ($essai_auth_http == 'oui') { + include_ecrire('inc_session.php3'); + if (! verifier_php_auth()) { + ask_php_auth("<b>Connexion refusée.</b><p>(Login ou mot de passe incorrect.)<p>[<a href='./'>Retour au site public</a>] [<a href='./spip_cookie.php3?essai_auth_http=oui&redirect=./ecrire/'>Nouvelle tentative</a>] [<a href='./ecrire/'>espace privé</a>]"); + } else { + @header("Location: $redirect"); + } + exit; +} +// si demande logout auth_http +else if ($essai_auth_http == 'logout') { + include_ecrire('inc_session.php3'); + ask_php_auth("<b>Déconnexion effectuée.</b><p>(Vérifiez toutefois que votre navigateur n'a pas mémorisé votre mot de passe...)<p>[<a href='./'>Retour au site public</a>] [<a href='./spip_cookie.php3?essai_auth_http=oui&redirect=./ecrire/'>test navigateur/reconnexion</a>] [<a href='./ecrire/'>espace privé</a>]"); + exit; +} // rejoue le cookie pour renouveler spip_session if ($change_session == "oui") { @@ -28,26 +44,52 @@ if ($cookie_session == "non") { setcookie('spip_session', $spip_session, time() - 3600 * 24); } else if ($essai_login == "oui") { - // verifie l'auteur - if ($session_password_md5) - $md5pass = $session_password_md5; - else - $md5pass = md5($session_password); + // recuperer le login passe en champ hidden + if ($session_login_hidden AND ! $session_login) $session_login=$session_login_hidden; + // verifier l'auteur $login = addslashes($session_login); - $query = "SELECT * FROM spip_auteurs WHERE login='$login' AND pass='$md5pass'"; + if ($session_password_md5) { + $md5pass = $session_password_md5; + $md5next = $next_session_password_md5; + } else { + $query = "SELECT * FROM spip_auteurs WHERE login='$login'"; + $result = spip_query($query); + if ($row = mysql_fetch_array($result)) { + $md5pass = md5($row['alea_actuel'] . $session_password); + $md5next = md5($row['alea_futur'] . $session_password); + } + } + + $query = "SELECT * FROM spip_auteurs WHERE login='$login' AND pass='$md5pass' AND statut<>'5poubelle'"; $result = spip_query($query); if ($row_auteur = mysql_fetch_array($result)) { + if ($row_auteur['statut'] == 'nouveau') { // nouvel inscrit + spip_query ("UPDATE spip_auteurs SET statut='1comite' WHERE login='$login'"); + $row_auteur['statut'] = '1comite'; + } + if ($row_auteur['statut'] == '0minirezo') { // force le cookie pour les admins $cookie_admin = "@".$row_auteur['login']; } if ($zap_sessions) zap_sessions($row_auteur['login'], true); $cookie_session = creer_cookie_session($row_auteur); setcookie('spip_session', $cookie_session, time() + 3600 * 24 * 7); + + + // ici on fait tourner le codage du pass dans la base + // retournera une erreur si la base n'est pas mise a jour... + $nouvel_alea_futur = creer_uniqid(); + $query = "UPDATE spip_auteurs + SET alea_actuel = alea_futur, + pass = '$md5next', + alea_futur = '$nouvel_alea_futur' + WHERE login='$login'"; + @spip_query($query); } else if ($redirect_echec) { - @header("Location: $redirect_echec"); + @header("Location: $redirect_echec?login=$login&erreur=pass"); exit; } } @@ -65,4 +107,4 @@ if (!$redirect) $redirect = './index.php3'; @header("Location: $redirect"); -?> \ No newline at end of file +?> -- GitLab