Subversion Repositories Sites.tela-botanica.org

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 david 1
<?php
2
 
3
/***************************************************************************\
4
 *  SPIP, Systeme de publication pour l'internet                           *
5
 *                                                                         *
6
 *  Copyright (c) 2001-2005                                                *
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
 
14
include ("ecrire/inc_version.php3");
15
include_ecrire("inc_presentation.php3"); # pour install_debut
16
include_ecrire("inc_session.php3"); # pour creer_uniq_id
17
include_ecrire("inc_mail.php3"); # pour envoyer_mail
18
include_ecrire("inc_acces.php3"); # pour generer_htpass
19
include_local("inc-public-global.php3"); # pour calculer la page
20
include_local ("inc-cache.php3"); # ici c'est pour tester la connexion SQL
21
include_ecrire("inc_lang.php3");
22
 
23
utiliser_langue_site();
24
utiliser_langue_visiteur();
25
 
26
// Ce fichier est celui d'une balise dynamique qui s'ignore.
27
 
28
function formulaire_oubli_dyn($p, $oubli)
29
{
30
 
31
$message = '';
32
 
33
// au 3e appel la variable P est positionnee par le script lui-meme
34
// et oubli = mot passe. Le choix du nom P est impose par pass_mail_passcookie
35
if ($p = addslashes($p)) {
36
	$res = spip_query("SELECT * FROM spip_auteurs WHERE cookie_oubli='$p' AND statut<>'5poubelle' AND pass<>''");
37
	if (!$row = spip_fetch_array($res))
38
		$message = _T('pass_erreur_code_inconnu');
39
	else {
40
		if ($oubli) {
41
			$mdpass = md5($oubli);
42
			$htpass = generer_htpass($oubli);
43
			spip_query("UPDATE spip_auteurs SET htpass='$htpass', pass='$mdpass', alea_actuel='',
44
				cookie_oubli='' WHERE cookie_oubli='$p'");
45
 
46
			$login = $row['login'];
47
			$message = "<b>" . _T('pass_nouveau_enregistre') . "</b>".
48
			"<p>" . _T('pass_rappel_login', array('login' => $login));
49
		}
50
	}
51
 } else {
52
  // si p absent, oubli vaut alors le mail au 2e appel, vide au 1e
53
  if ($oubli) {
54
	if ( email_valide($oubli) ) {
55
		$email = addslashes($oubli);
56
		$res = spip_query("SELECT * FROM spip_auteurs WHERE email ='$email'");
57
		if ($row = spip_fetch_array($res)) {
58
			if ($row['statut'] == '5poubelle' OR $row['pass'] == '')
59
				$message = _T('pass_erreur_acces_refuse');
60
			else {
61
				$cookie = creer_uniqid();
62
				spip_query("UPDATE spip_auteurs SET cookie_oubli = '$cookie' WHERE email ='$email'");
63
 
64
				if ( envoyer_mail($email,
65
						 "[" . lire_meta("nom_site") .'] ' .  _T('pass_oubli_mot'),
66
						 _T('pass_mail_passcookie',
67
						    array('nom_site_spip' => lire_meta("nom_site"),
68
							  'adresse_site' => lire_meta("adresse_site"),
69
							  'cookie' => $cookie))))
70
					$message = _T('pass_recevoir_mail');
71
				else
72
					$message = _T('pass_erreur_probleme_technique');
73
			}
74
		}
75
		else
76
			$message = _T('pass_erreur_non_enregistre', array('email_oubli' => htmlspecialchars($oubli)));
77
	} else {
78
		$message = _T('pass_erreur_non_valide', array('email_oubli' => htmlspecialchars($oubli)));
79
	}
80
  }
81
 }
82
 return array('formulaire_oubli', 0, array('p' => $p, 'message' => $message));
83
}
84
 
85
install_debut_html(_T('pass_mot_oublie'));
86
inclure_balise_dynamique(formulaire_oubli_dyn($p, $oubli));
87
install_fin_html();
88
?>