[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / squelettes-dist / formulaires / oubli.php
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
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 // chargement des valeurs par defaut des champs du formulaire
16 function formulaires_oubli_charger_dist(){
17 $valeurs = array('oubli'=>'');
18 return $valeurs;
19 }
20
21 // http://doc.spip.org/@message_oubli
22 function message_oubli($email, $param)
23 {
24 $r = formulaires_oubli_mail($email);
25 if (is_array($r) AND $r[1]) {
26 include_spip('inc/acces'); # pour creer_uniqid
27 include_spip('inc/texte'); # pour corriger_typo
28 $cookie = creer_uniqid();
29 sql_updateq("spip_auteurs", array("cookie_oubli" => $cookie), "id_auteur=" . $r[1]['id_auteur']);
30
31 $nom = textebrut(corriger_typo($GLOBALS['meta']["nom_site"]));
32 $envoyer_mail = charger_fonction('envoyer_mail','inc');
33
34 if ($envoyer_mail($email,
35 ("[$nom] " . _T('pass_oubli_mot')),
36 _T('pass_mail_passcookie',
37 array('nom_site_spip' => $nom,
38 'adresse_site' => url_de_base(),
39 'sendcookie' => generer_url_public('spip_pass',
40 "$param=$cookie", true)))) )
41 return _T('pass_recevoir_mail');
42 else
43 return _T('pass_erreur_probleme_technique');
44 }
45 return _T('pass_erreur_probleme_technique');
46 }
47
48 // la saisie a ete validee, on peut agir
49 function formulaires_oubli_traiter_dist(){
50
51 $message = message_oubli(_request('oubli'),'p');
52 return array('message_ok'=>$message);
53 }
54
55
56 // fonction qu'on peut redefinir pour filtrer les adresses mail
57 // http://doc.spip.org/@test_oubli
58 function test_oubli_dist($email)
59 {
60 include_spip('inc/filtres'); # pour email_valide()
61 if (!email_valide($email) )
62 return _T('pass_erreur_non_valide', array('email_oubli' => htmlspecialchars($email)));
63 return array('mail' => $email);
64 }
65
66 function formulaires_oubli_verifier_dist(){
67 $erreurs = array();
68
69 $email = strval(_request('oubli'));
70
71 $r = formulaires_oubli_mail($email);
72
73 if (!is_array($r))
74 $erreurs['oubli'] = $r;
75 else {
76 if (!$r[1])
77 $erreurs['oubli'] = _T('pass_erreur_non_enregistre', array('email_oubli' => htmlspecialchars($email)));
78
79 elseif ($r[1]['statut'] == '5poubelle' OR $r[1]['pass'] == '')
80 $erreurs['oubli'] = _T('pass_erreur_acces_refuse');
81 }
82
83 return $erreurs;
84 }
85
86 function formulaires_oubli_mail($email)
87 {
88 if (function_exists('test_oubli'))
89 $f = 'test_oubli';
90 else
91 $f = 'test_oubli_dist';
92 $declaration = $f($email);
93
94 if (!is_array($declaration))
95 return $declaration;
96 else {
97 include_spip('base/abstract_sql');
98 return array($declaration, sql_fetsel("id_auteur,statut,pass", "spip_auteurs", "email =" . sql_quote($declaration['mail'])));
99 }
100 }
101 ?>