getUrl());
$page_erreur = ""._T('login_connexion_refusee')."
"._T('login_login_pass_incorrect')."
["._T('login_retour_site')."] ["._T('login_nouvelle_tentative')."]";
if (ereg("ecrire/", $url))
$page_erreur .= " ["._T('login_espace_prive')."]";
ask_php_auth($page_erreur);
}
else
@header("Location: " . $cible->getUrl() );
exit;
}
// si demande logout auth_http
else if ($essai_auth_http == 'logout') {
include_ecrire('inc_session.php3');
ask_php_auth(""._T('login_deconnexion_ok')."
"._T('login_verifiez_navigateur')."
["._T('login_retour_public')."] ["._T('login_test_navigateur')."] ["._T('login_espace_prive')."]");
exit;
}
}
function ouvre_login($titre='') {
$retour .= "
";
if ($titre) $retour .= "
$titre
";
$retour .= '';
return $retour;
}
function ferme_login() {
$retour = "";
$retour .= "";
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 ""._T('login_par_ici')."\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 eventuel
if (!$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 connexion
if ($row['prefs']) {
$prefs = unserialize($row['prefs']);
$rester_checked = ($prefs['cnx'] == 'perma' ? ' checked':'');
}
}
}
// login inconnu (sauf LDAP) ou refuse
if ($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 focus
if ($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 ""._T('login_cookie_oblige')." ";
echo _T('login_cookie_accepte')."\n";
}
else {
echo ouvre_login ();
if (strlen($message_login) > 0) echo "
$message_login
\n";
}
if ($login) {
// Affiche formulaire de login en incluant le javascript MD5
$flag_challenge_md5 = ($source_auteur == 'spip');
if ($flag_challenge_md5) echo "";
echo "
";
}
else { // demander seulement le login
$url = $cible->getUrl();
$action = $clean_link->getUrl();
echo "";
}
// Gerer le focus
echo "\n";
if ($echec_cookie == "oui" AND $php_module AND !$ignore_auth_http) {
echo "\n";
}
echo "\n"; // 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 '["
._T('login_sinscrire').']';
}
// Bouton oubli de mot de passe
include_ecrire ("inc_mail.php3");
if (tester_mail()) {
echo ' ["
._T('login_motpasseoublie').']';
}
// Bouton retour au site public
if ($prive) echo " ["._T('login_retoursitepublic')."]";
echo "\n";
echo ferme_login();
}
?>