X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fsquelettes-dist%2Fformulaires%2Foubli.php;fp=www%2Fsquelettes-dist%2Fformulaires%2Foubli.php;h=c93a95e99a80e67b21c2f3c8687c8f996d0e5353;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/squelettes-dist/formulaires/oubli.php b/www/squelettes-dist/formulaires/oubli.php new file mode 100644 index 0000000..c93a95e --- /dev/null +++ b/www/squelettes-dist/formulaires/oubli.php @@ -0,0 +1,101 @@ +''); + return $valeurs; +} + +// http://doc.spip.org/@message_oubli +function message_oubli($email, $param) +{ + $r = formulaires_oubli_mail($email); + if (is_array($r) AND $r[1]) { + include_spip('inc/acces'); # pour creer_uniqid + include_spip('inc/texte'); # pour corriger_typo + $cookie = creer_uniqid(); + sql_updateq("spip_auteurs", array("cookie_oubli" => $cookie), "id_auteur=" . $r[1]['id_auteur']); + + $nom = textebrut(corriger_typo($GLOBALS['meta']["nom_site"])); + $envoyer_mail = charger_fonction('envoyer_mail','inc'); + + if ($envoyer_mail($email, + ("[$nom] " . _T('pass_oubli_mot')), + _T('pass_mail_passcookie', + array('nom_site_spip' => $nom, + 'adresse_site' => url_de_base(), + 'sendcookie' => generer_url_public('spip_pass', + "$param=$cookie", true)))) ) + return _T('pass_recevoir_mail'); + else + return _T('pass_erreur_probleme_technique'); + } + return _T('pass_erreur_probleme_technique'); +} + +// la saisie a ete validee, on peut agir +function formulaires_oubli_traiter_dist(){ + + $message = message_oubli(_request('oubli'),'p'); + return array('message_ok'=>$message); +} + + +// fonction qu'on peut redefinir pour filtrer les adresses mail +// http://doc.spip.org/@test_oubli +function test_oubli_dist($email) +{ + include_spip('inc/filtres'); # pour email_valide() + if (!email_valide($email) ) + return _T('pass_erreur_non_valide', array('email_oubli' => htmlspecialchars($email))); + return array('mail' => $email); +} + +function formulaires_oubli_verifier_dist(){ + $erreurs = array(); + + $email = strval(_request('oubli')); + + $r = formulaires_oubli_mail($email); + + if (!is_array($r)) + $erreurs['oubli'] = $r; + else { + if (!$r[1]) + $erreurs['oubli'] = _T('pass_erreur_non_enregistre', array('email_oubli' => htmlspecialchars($email))); + + elseif ($r[1]['statut'] == '5poubelle' OR $r[1]['pass'] == '') + $erreurs['oubli'] = _T('pass_erreur_acces_refuse'); + } + + return $erreurs; +} + +function formulaires_oubli_mail($email) +{ + if (function_exists('test_oubli')) + $f = 'test_oubli'; + else + $f = 'test_oubli_dist'; + $declaration = $f($email); + + if (!is_array($declaration)) + return $declaration; + else { + include_spip('base/abstract_sql'); + return array($declaration, sql_fetsel("id_auteur,statut,pass", "spip_auteurs", "email =" . sql_quote($declaration['mail']))); + } +} +?>