[(#LOGIN_PUBLIC{#LOGIN})] function balise_LOGIN_PUBLIC_stat ($args, $filtres) { return array($filtres[0] ? $filtres[0] : $args[0], $args[1], $args[2]); } function balise_LOGIN_PUBLIC_dyn($url, $login) { if (!$url # pas d'url passee en filtr eou dans le contexte AND !$url = _request('url') # ni d'url passee par l'utilisateur ) { $link = new Link(); $link->delVar('var_erreur'); $link->delVar('var_login'); $url = $link->getUrl(); } return login_explicite($login, $url); } function login_explicite($login, $cible) { global $auteur_session; $link = new Link(); $link->delVar('var_erreur'); $link->delVar('var_login'); $action = $link->getUrl(); if ($cible) { $cible = ereg_replace("[?&]var_erreur=[^&]*", '', $cible); $cible = ereg_replace("[?&]var_login=[^&]*", '', $cible); } else { if (ereg("[?&]url=([^&]*)", $action, $m)) $cible = urldecode($m[1]); else $cible = _DIR_RESTREINT ; } include_ecrire("inc_session.php3"); verifier_visiteur(); if ($auteur_session AND ($auteur_session['statut']=='0minirezo' OR $auteur_session['statut']=='1comite')) { if (($cible != $action) && !headers_sent() AND !$_GET['var_mode']) redirige_par_entete($cible); return http_href($cible, _T('login_par_ici')); } return login_pour_tous($login ? $login : _request('var_login'), $cible, $action); } function login_pour_tous($login, $cible, $action) { global $ignore_auth_http, $php_module, $_SERVER, $_COOKIE; // 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 (_request('var_echec_cookie')) $echec_cookie = ($_COOKIE['spip_session'] != 'test_echec_cookie'); $auth_http = ($echec_cookie AND $php_module AND !$ignore_auth_http) ? 'spip_cookie.php3' : ''; // Attention dans le cas 'intranet' la proposition de se loger // par auth_http peut conduire a l'echec. if ($_SERVER['PHP_AUTH_USER'] AND $_SERVER['PHP_AUTH_PW']) $auth_http = ''; // Le login est memorise dans le cookie d'admin eventuel if (!$login) { if (ereg("^@(.*)$", $_COOKIE['spip_admin'], $regs)) $login = $regs[1]; } else if ($login == '-1') $login = ''; $erreur = ''; if ($login) { $s = spip_query("SELECT * FROM spip_auteurs WHERE login='" .addslashes($login) ."'"); $row = spip_fetch_array($s); // Retrouver ceux qui signent de leur nom ou email if (!$row AND !$GLOBALS['ldap_present']) { if ($t = spip_fetch_array( spip_query( "SELECT * FROM spip_auteurs WHERE (nom LIKE '" .addslashes($login) ."' OR email LIKE '" .addslashes($login) ."') AND login<>'' AND statut<>'5poubelle'" ))) { $row = $t; $login_alt = $login; # afficher ce qu'on a tape $login = $t['login']; } } if ((!$row AND !$GLOBALS['ldap_present']) OR ($row['statut'] == '5poubelle') OR (($row['source'] == 'spip') AND $row['pass'] == '')) { $erreur = _T('login_identifiant_inconnu', array('login' => htmlspecialchars($login))); $row = array(); $login = ''; @spip_setcookie("spip_admin", "", time() - 3600); } else { // on laisse le menu decider de la langue unset($row['lang']); } } if (!$row) $row = array(); // afficher "erreur de mot de passe" si &var_erreur=pass if (_request('var_erreur') == 'pass') $erreur = _T('login_erreur_pass'); return array('formulaire_login', $GLOBALS['delais'], array_merge( array_map('texte_script', $row), array( 'action2' => ($login ? 'spip_cookie.php3' : $action), 'erreur' => $erreur, 'action' => $action, 'url' => $cible, 'auth_http' => $auth_http, 'echec_cookie' => ($echec_cookie ? ' ' : ''), 'login' => $login, 'login_alt' => ($login_alt ? $login_alt : $login), 'self' => $GLOBALS["clean_link"]->getUrl() ) ) ); } // Bouton duree de connexion function filtre_rester_connecte($prefs) { $prefs = unserialize(stripslashes($prefs)); return $prefs['cnx'] == 'perma' ? ' ' : ''; } // made in cherche_image_nommee. A partager. function silogoauteur($id_auteur, $formats = array ('gif', 'jpg', 'png')) { reset($formats); while (list(, $format) = each($formats)) { $d = _DIR_IMG . "auton$id_auteur.$format"; if (@file_exists($d)) return $d; } return ''; } ?>