Blame | Last modification | View Log | RSS feed
<?php//// Ce fichier ne sera execute qu'une foisif (defined("_INC_LOGIN")) return;define("_INC_LOGIN", "1");include_ecrire ("inc_meta.php3");include_ecrire ("inc_session.php3");include_ecrire ("inc_filtres.php3");include_ecrire ("inc_texte.php3");include_local ("inc-formulaires.php3");// gerer l'auth httpfunction auth_http($cible, $essai_auth_http) {if ($essai_auth_http == 'oui') {include_ecrire('inc_session.php3');if (!verifier_php_auth()) {$url = urlencode($cible->getUrl());$page_erreur = "<b>"._T('login_connexion_refusee')."</b><p>"._T('login_login_pass_incorrect')."<p>[<a href='./'>"._T('login_retour_site')."</a>] [<a href='./spip_cookie.php3?essai_auth_http=oui&url=$url'>"._T('login_nouvelle_tentative')."</a>]";if (ereg("ecrire/", $url))$page_erreur .= " [<a href='ecrire/'>"._T('login_espace_prive')."</a>]";ask_php_auth($page_erreur);}else@header("Location: " . $cible->getUrl() );exit;}// si demande logout auth_httpelse if ($essai_auth_http == 'logout') {include_ecrire('inc_session.php3');ask_php_auth("<b>"._T('login_deconnexion_ok')."</b><p>"._T('login_verifiez_navigateur')."<p>[<a href='./'>"._T('login_retour_public')."</a>] [<a href='./spip_cookie.php3?essai_auth_http=oui&redirect=ecrire'>"._T('login_test_navigateur')."</a>] [<a href='ecrire/'>"._T('login_espace_prive')."</a>]");exit;}}function ouvre_login($titre='') {$retour .= "<div>";if ($titre) $retour .= "<h3 class='spip'>$titre</h3>";$retour .= '<font size="2" face="Verdana,arial,helvetica,sans-serif">';return $retour;}function ferme_login() {$retour = "</font>";$retour .= "</div>";return $retour;}function login($cible = '', $prive = 'prive', $message_login='') {$login = $GLOBALS['var_login'];$erreur = '';$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, $ignore_auth_http;global $spip_admin;global $php_module;global $clean_link;if (!$cible) {if ($GLOBALS['var_url']) $cible = new Link($GLOBALS['var_url']);else if ($prive) $cible = new Link('ecrire/');else $cible = $clean_link;}$cible->delVar('var_erreur');$cible->delVar('var_url');$clean_link->delVar('var_erreur');$clean_link->delVar('var_login');include_ecrire("inc_session.php3");verifier_visiteur();if ($auteur_session AND !$logout AND($auteur_session['statut']=='0minirezo' OR $auteur_session['statut']=='1comite')) {$url = $cible->getUrl();if ($url != $GLOBALS['clean_link']->getUrl())@Header("Location: $url");echo "<a href='$url'>"._T('login_par_ici')."</a>\n";return;}// initialisations$nom_site = lire_meta('nom_site');if (!$nom_site) $nom_site = _T('info_mon_site_spip');$url_site = lire_meta('adresse_site');if (!$url_site) $url_site = "./";if ($GLOBALS['var_erreur'] =='pass') $erreur = _T('login_erreur_pass');// Le login est memorise dans le cookie d'admin eventuelif (!$login) {if (ereg("^@(.*)$", $spip_admin, $regs))$login = $regs[1];} else if ($login == '-1')$login = '';$flag_autres_sources = $GLOBALS['ldap_present'];if ($login) {$statut_login = 0; // statut inconnu$login = addslashes($login);$query = "SELECT * FROM spip_auteurs WHERE login='$login'";$result = spip_query($query);if ($row = spip_fetch_array($result)) {if ($row['statut'] == '5poubelle' OR ($source == 'spip' AND $row['pass'] == '')) {$statut_login = -1; // refus} else {$statut_login = 1; // login connu// Quels sont les aleas a passer pour le javascript ?if ($row['source'] == 'spip') {$id_auteur = $row['id_auteur'];$source_auteur = $row['source'];$alea_actuel = $row['alea_actuel'];$alea_futur = $row['alea_futur'];}// Bouton duree de connexionif ($row['prefs']) {$prefs = unserialize($row['prefs']);$rester_checked = ($prefs['cnx'] == 'perma' ? ' checked':'');}}}// login inconnu (sauf LDAP) ou refuseif ($statut_login == -1 OR ($statut_login == 0 AND !$flag_autres_sources)) {$erreur = _T('login_identifiant_inconnu', array('login' => htmlspecialchars($login)));$login = '';@spip_setcookie("spip_admin", "", time() - 3600);}}// javascript pour le focusif ($login)$js_focus = 'document.form_login.session_password.focus();';else$js_focus = 'document.form_login.var_login.focus();';if ($echec_cookie == "oui") {echo ouvre_login (_T('erreur_probleme_cookie'));echo "<p><b>"._T('login_cookie_oblige')."</b> ";echo _T('login_cookie_accepte')."\n";}else {echo ouvre_login ();if (strlen($message_login) > 0) echo "<br>$message_login<br>\n";}if ($login) {// Affiche formulaire de login en incluant le javascript MD5$flag_challenge_md5 = ($source_auteur == 'spip');if ($flag_challenge_md5) echo "<script type=\"text/javascript\" src=\"ecrire/md5.js\"></script>";echo "<form name='form_login' action='./spip_cookie.php3' method='post'";if ($flag_challenge_md5) echo " onSubmit='if (this.session_password.value) {this.session_password_md5.value = calcMD5(\"$alea_actuel\" + this.session_password.value);this.next_session_password_md5.value = calcMD5(\"$alea_futur\" + this.session_password.value);this.session_password.value = \"\";}'";echo ">\n";echo "<div class='spip_encadrer' style='text-align:".$GLOBALS["spip_lang_left"].";'>";if ($erreur) echo "<div class='reponse_formulaire'><b>$erreur</b></div><p>";if ($flag_challenge_md5) {// si jaja actif, on affiche le login en 'dur', et on le passe en champ hiddenecho "<script type=\"text/javascript\"><!--\n" ."document.write('".addslashes(_T('login_login'))." <b>$login</b> <br><font size=\\'2\\'>[<a href=\\'spip_cookie.php3?cookie_admin=non&url=".rawurlencode($clean_link->getUrl())."\\'>".addslashes(_T('login_autre_identifiant'))."</a>]</font>');\n" ."//--></script>\n";echo "<input type='hidden' name='session_login_hidden' value='$login'>";// si jaja inactif, le login est modifiable (puisque le challenge n'est pas utilise)echo "<noscript>";echo "<font face='Georgia, Garamond, Times, serif' size='3'>";echo _T('login_non_securise')." <a href=\"".$clean_link->getUrl()."\">"._T('login_recharger')."</a>.<p></font>\n";}echo "<label><b>"._T('login_login2')."</b><br></label>";echo "<input type='text' name='session_login' class='forml' value=\"$login\" size='40'>\n";if ($flag_challenge_md5) echo "</noscript>\n";echo "<br><br>\n<label><b>"._T('login_pass2')."</b><br></label>";echo "<input type='password' name='session_password' class='forml' value=\"\" size='40'>\n";echo "<input type='hidden' name='essai_login' value='oui'>\n";echo "<br> <input type='checkbox' name='session_remember' value='oui' id='session_remember'$rester_checked> ";echo "<label for='session_remember'>"._T('login_rester_identifie')."</label>";$url = $cible->getUrl();echo "<input type='hidden' name='url' value='$url'>\n";echo "<input type='hidden' name='session_password_md5' value=''>\n";echo "<input type='hidden' name='next_session_password_md5' value=''>\n";echo "<div align='right'><input type='submit' class='spip_bouton' name='submit' value='"._T('bouton_valider')."'></div>\n";echo "</div>";echo "</form>";}else { // demander seulement le login$url = $cible->getUrl();$action = $clean_link->getUrl();echo "<form name='form_login' action='$action' method='post'>\n";echo "<div class='spip_encadrer'>";if ($erreur) echo "<font color=red><b>$erreur</b></font><p>";echo "<label><b>"._T('login_login2')."</b><br></label>";echo "<input type='text' name='var_login' class='forml' value=\"\" size='40'>\n";echo "<input type='hidden' name='var_url' value='$url'>\n";echo "<div align='right'><input type='submit' class='spip_bouton' name='submit' value='"._T('bouton_valider')."'></div>\n";echo "</div>";echo "</form>";}// Gerer le focusecho "<script type=\"text/javascript\"><!--\n" . $js_focus . "\n//--></script>\n";if ($echec_cookie == "oui" AND $php_module AND !$ignore_auth_http) {echo "<form action='spip_cookie.php3' method='get'>";echo "<fieldset>\n<p>";echo _T('login_preferez_refuser')." \n";echo "<input type='hidden' name='essai_auth_http' value='oui'> ";$url = $cible->getUrl();echo "<input type='hidden' name='url' value='$url'>\n";echo "<div align='right'><input type='submit' name='submit' class='spip_bouton' value='"._T('login_sans_cookiie')."'></div>\n";echo "</fieldset></form>\n";}echo "\n<center>"; // debut du pied de login// Bouton s'inscrire$inscriptions_ecrire = (lire_meta("accepter_inscriptions") == "oui");if ((!$prive AND (lire_meta('accepter_visiteurs') == 'oui') OR (lire_meta('forums_publics') == 'abo')) OR ($prive AND $inscriptions_ecrire)) {echo '[<a href="spip_pass.php3" target="spip_pass" onclick="'."javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=450'); return false;\">"._T('login_sinscrire').'</a>]';}// Bouton oubli de mot de passeinclude_ecrire ("inc_mail.php3");if (tester_mail()) {echo ' [<a href="spip_pass.php3?oubli_pass=oui" target="spip_pass" onclick="'."javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=280'); return false;\">"._T('login_motpasseoublie').'</a>]';}// Bouton retour au site publicif ($prive) echo " [<a href='$url_site'>"._T('login_retoursitepublic')."</a>]";echo "</center>\n";echo ferme_login();}?>