[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/inc/ -> auth_spip.php (source)

   1  <?php
   2  
   3  /***************************************************************************\
   4   *  SPIP, Systeme de publication pour l'internet                           *
   5   *                                                                         *
   6   *  Copyright (c) 2001-2007                                                *
   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  // Authentifie et retourne la ligne SQL decrivant l'utilisateur si ok
  16  
  17  // http://doc.spip.org/@inc_auth_spip_dist
  18  function inc_auth_spip_dist ($login, $pass) {
  19  
  20    // recuperer le cryptage par JavaScript
  21      $md5pass = $_POST['session_password_md5']; 
  22      $md5next = $_POST['next_session_password_md5'];
  23  
  24        // si envoi non crypte, crypter maintenant
  25      if (!$md5pass AND $pass) {
  26              $result = spip_query("SELECT alea_actuel, alea_futur FROM spip_auteurs WHERE login=" . _q($login));
  27  
  28              if ($row = spip_fetch_array($result)) {
  29                  $md5pass = md5($row['alea_actuel'] . $pass);
  30                  $md5next = md5($row['alea_futur'] . $pass);
  31              }
  32          }
  33      // login inexistant ou mot de passe vide
  34      if (!$md5pass) return array();
  35  
  36      $result = spip_query("SELECT * FROM spip_auteurs WHERE login=" . _q($login) . " AND pass=" . _q($md5pass) . " AND statut<>'5poubelle'");
  37      $row = spip_fetch_array($result);
  38  
  39      // login/mot de passe incorrect
  40      if (!$row) return array(); 
  41  
  42      if ($row['statut'] == 'nouveau') {
  43          include_spip('inc/auth');
  44          $row['statut'] = acces_statut($row['id_auteur'], $row['statut'], $row['bio']);
  45      }
  46  
  47      // fait tourner le codage du pass dans la base
  48      if ($md5next) {
  49          include_spip('inc/acces'); // pour creer_uniqid
  50          @spip_query("UPDATE spip_auteurs SET alea_actuel = alea_futur, pass = " . _q($md5next) . ", alea_futur = '" . creer_uniqid() ."' WHERE id_auteur=" . $row['id_auteur']);
  51          // En profiter pour verifier la securite de ecrire/data/
  52          verifier_htaccess(_DIR_TMP);
  53      }
  54      return $row;
  55  }
  56  
  57  ?>


Généré le : Wed Nov 21 10:20:27 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics