source: spip-zone/_core_/branches/spip-3.0/plugins/dist/formulaires/oubli.php @ 79964

Last change on this file since 79964 was 79964, checked in by cedric@…, 7 years ago

Report de r79297 : Fix de la fonction htmlspecialchars en ISO sous PHP 5.4+ : on utilise le wrapper spip_htmlspecialchars

File size: 2.9 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2014                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined('_ECRIRE_INC_VERSION')) return;
14
15// chargement des valeurs par defaut des champs du formulaire
16function formulaires_oubli_charger_dist(){
17        $valeurs = array('oubli'=>'','nobot'=>'');
18        return $valeurs;
19}
20
21// http://doc.spip.org/@message_oubli
22function message_oubli($email, $param)
23{
24        $r = formulaires_oubli_mail($email);
25        if (is_array($r) AND $r[1]) {
26                include_spip('inc/texte'); # pour corriger_typo
27
28                include_spip('action/inscrire_auteur');
29                $cookie = auteur_attribuer_jeton($r[1]['id_auteur']);
30
31                $msg = recuperer_fond(
32                        "modeles/mail_oubli",
33                        array(
34                                'url_reset'=>generer_url_public('spip_pass',"$param=$cookie", true, false)
35                        )
36                );
37                include_spip("inc/notifications");
38                notifications_envoyer_mails($email, $msg);
39          return _T('pass_recevoir_mail');
40        }
41        return  _T('pass_erreur_probleme_technique');
42}
43
44// la saisie a ete validee, on peut agir
45function formulaires_oubli_traiter_dist(){
46
47        $message = message_oubli(_request('oubli'),'p');
48        return array('message_ok'=>$message);
49}
50
51
52// fonction qu'on peut redefinir pour filtrer les adresses mail
53// http://doc.spip.org/@test_oubli
54function test_oubli_dist($email)
55{
56        include_spip('inc/filtres'); # pour email_valide()
57        if (!email_valide($email) )
58                return _T('pass_erreur_non_valide', array('email_oubli' => spip_htmlspecialchars($email)));
59        return array('mail' => $email);
60}
61
62function formulaires_oubli_verifier_dist(){
63        $erreurs = array();
64
65        $email = strval(_request('oubli'));
66
67        $r = formulaires_oubli_mail($email);
68
69        if (!is_array($r))
70                $erreurs['oubli'] = $r;
71        else {
72                if (!$r[1])
73                        $erreurs['oubli'] = _T('pass_erreur_non_enregistre', array('email_oubli' => spip_htmlspecialchars($email)));
74
75                elseif ($r[1]['statut'] == '5poubelle' OR $r[1]['pass'] == '')
76                        $erreurs['oubli'] =  _T('pass_erreur_acces_refuse');
77        }
78
79        if (_request('nobot'))
80                $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
81
82        return $erreurs;
83}
84
85function formulaires_oubli_mail($email)
86{
87        if (function_exists('test_oubli'))
88                $f = 'test_oubli';
89        else
90                $f = 'test_oubli_dist';
91        $declaration = $f($email);
92
93        if (!is_array($declaration))
94                return $declaration;
95        else {
96                include_spip('base/abstract_sql');
97                return array($declaration, sql_fetsel("id_auteur,statut,pass", "spip_auteurs", "email =" . sql_quote($declaration['mail'])));
98        }
99}
100?>
Note: See TracBrowser for help on using the repository browser.