[ Index ]
 

Code source de SPIP 1.8.3

Accédez au Source d'autres logiciels libres | Soutenez Angelica Josefina !

title

Body

[fermer]

/ -> spip_pass.php3 (source)

   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  ?>


Généré le : Thu Feb 22 22:27:47 2007 par Balluche grâce à PHPXref 0.7