Skip to content
Extraits de code Groupes Projets
Valider 842d5b42 rédigé par esj's avatar esj
Parcourir les fichiers

fonctionnalisation du script, et evacuation d'un .php3 dans un fichier qu'il...

fonctionnalisation du script, et evacuation d'un .php3 dans un fichier qu'il faudra repercuter dans les autres. Il y en a encore 3 a evacuer
parent 83f67df7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -615,7 +615,7 @@ Pour retrouver votre accès au site
Veuillez vous rendre à l\'adresse suivante :
@adresse_site@/spip_pass.php3?p=@cookie@
@sendcookie@
Vous pourrez alors entrer un nouveau mot de passe
et vous reconnecter au site.
......
<h3 class='spip'><:pass_mot_oublie:></h3>
<div class='spip_serif'>[
(#ENV*{message})
][
......
......@@ -12,89 +12,87 @@
include ("ecrire/inc_version.php3");
include_ecrire('inc_minipres');
include_ecrire("inc_session"); # pour creer_uniq_id
include_ecrire("inc_mail"); # pour envoyer_mail
include_ecrire("inc_acces"); # pour generer_htpass
include_local("inc-public-global"); # pour calculer la page
include_ecrire("inc_lang");
include_ecrire("inc_filtres"); # pour email_valide()
include_ecrire('inc_headers');
utiliser_langue_site();
utiliser_langue_visiteur();
// Ce fichier est celui d'une balise dynamique qui s'ignore.
function spip_pass_passcookie($email, $param)
{
if (!email_valide($email) )
return _T('pass_erreur_non_valide', array('email_oubli' => htmlspecialchars($email)));
$smail = addslashes($email);
$res = spip_query("SELECT statut,pass FROM spip_auteurs WHERE email ='$smail'");
if (!$row = spip_fetch_array($res))
return _T('pass_erreur_non_enregistre', array('email_oubli' => htmlspecialchars($email)));
if ($row['statut'] == '5poubelle' OR $row['pass'] == '')
return _T('pass_erreur_acces_refuse');
$cookie = creer_uniqid();
$nom = $GLOBALS['meta']["nom_site"];
$url = $GLOBALS['meta']["adresse_site"];
spip_query("UPDATE spip_auteurs SET cookie_oubli = '$cookie' WHERE email ='$smail'");
if ( envoyer_mail($email,
("[$nom] " . _T('pass_oubli_mot')),
_T('pass_mail_passcookie',
array('nom_site_spip' => $nom,
'adresse_site' => $url,
'sendcookie' => generer_url_ecrire("$url/spip_pass", "$param=$cookie")))) )
return _T('pass_recevoir_mail');
else
return _T('pass_erreur_probleme_technique');
}
function formulaire_oubli_dyn($p, $oubli)
{
$message = '';
// au 3e appel la variable P est positionnee par le script lui-meme
// et oubli = mot passe. Le choix du nom P est impose par pass_mail_passcookie
if ($p = addslashes($p)) {
$res = spip_query("SELECT * FROM spip_auteurs WHERE cookie_oubli='$p' AND statut<>'5poubelle' AND pass<>''");
// au 3e appel la variable P est positionnee et oubli = mot passe.
// au 2e appel, P est vide et oubli vaut le mail a qui envoye le cookie
// au 1er appel, P et oubli sont vides
if (!$p) {
if ($oubli) $message = spip_pass_passcookie($oubli, 'p');
} else {
$p = addslashes($p);
$res = spip_query("SELECT login FROM spip_auteurs WHERE cookie_oubli='$p' AND statut<>'5poubelle' AND pass<>''");
if (!$row = spip_fetch_array($res))
$message = _T('pass_erreur_code_inconnu');
else {
if ($oubli) {
$mdpass = md5($oubli);
$htpass = generer_htpass($oubli);
spip_query("UPDATE spip_auteurs SET htpass='$htpass', pass='$mdpass', alea_actuel='',
cookie_oubli='' WHERE cookie_oubli='$p'");
spip_query("UPDATE spip_auteurs SET htpass='$htpass', pass='$mdpass', alea_actuel='', cookie_oubli='' WHERE cookie_oubli='$p'");
$login = $row['login'];
$message = "<b>" . _T('pass_nouveau_enregistre') . "</b>".
"<p>" . _T('pass_rappel_login', array('login' => $login));
}
}
} else {
// si p absent, oubli vaut alors le mail au 2e appel, vide au 1e
if ($oubli) {
if ( email_valide($oubli) ) {
$email = addslashes($oubli);
$res = spip_query("SELECT * FROM spip_auteurs WHERE email ='$email'");
if ($row = spip_fetch_array($res)) {
if ($row['statut'] == '5poubelle' OR $row['pass'] == '')
$message = _T('pass_erreur_acces_refuse');
else {
$cookie = creer_uniqid();
spip_query("UPDATE spip_auteurs SET cookie_oubli = '$cookie' WHERE email ='$email'");
if ( envoyer_mail($email,
"[" . $GLOBALS['meta']["nom_site"] .'] ' . _T('pass_oubli_mot'),
_T('pass_mail_passcookie',
array('nom_site_spip' => $GLOBALS['meta']["nom_site"],
'adresse_site' => $GLOBALS['meta']["adresse_site"],
'cookie' => $cookie))))
$message = _T('pass_recevoir_mail');
else
$message = _T('pass_erreur_probleme_technique');
}
}
else
$message = _T('pass_erreur_non_enregistre', array('email_oubli' => htmlspecialchars($oubli)));
} else {
$message = _T('pass_erreur_non_valide', array('email_oubli' => htmlspecialchars($oubli)));
}
}
}
return array('formulaire_oubli', 0, array('p' => $p, 'message' => $message));
}
http_no_cache();
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="',
$GLOBALS['spip_lang'],
'" dir="',
($GLOBALS['spip_lang_rtl'] ? 'rtl' : 'ltr'),
'">
<head><title>',
_T('pass_mot_oublie'),
'</title>
<link rel="stylesheet" type="text/css" href="spip_style.css" />
</head><body>';
inclure_balise_dynamique(formulaire_oubli_dyn($p, $oubli));
echo "</body></html>";
function spip_pass_dist()
{
global $p, $oubli;
install_debut_html( _T('pass_mot_oublie'));
inclure_balise_dynamique(formulaire_oubli_dyn($p, $oubli));
install_fin_html();
}
spip_pass_dist();
?>
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