¡Bienvenido! ¿Aún no estás registrado?, deberás registrarte antes de poder usar el Chat, Comentar y Descargar en el Foro. Usa un email válido para la activación.
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

ACTUALIZACIÓN Iniciar sesión con email
#1

2
Mejor respuesta del mensaje Iniciar sesión con email
Iniciar sesión con email

Esto es bastante rápido y fácil.
1 - Buscamos en inc/class/c.user.php 
 
function loginUser($username$password$remember FALSE$redirectTo NULL){
        global 
$tsCore;

        
/* ARMAR VARIABLES */
        
$username strtolower($username);    // ARMAR VARIABLES
        
$pp_password md5(md5($password) . $username);
        
/* CONSULTA */
        
$pwtype = (db_exec('num_rows'db_exec(array(__FILE____LINE__), 'query''SHOW COLUMNS FROM u_miembros LIKE \'user_pwtype\'')) == 1) ? 'user_pwtype,' '';      
        
$query db_exec(array(__FILE____LINE__), 'query''SELECT user_id, user_password, ' $pwtype ' user_activo, user_baneado FROM u_miembros WHERE LOWER(user_name) = \''.$username.'\' LIMIT 1');
        
//
        
$data db_exec('fetch_assoc'$query);
        
        if(empty(
$data)) return '0: El usuario no existe.';
        
//
           
if($data['user_pwtype']){
               
$other_passwords = array();
               
$other_passwords[] = sha1($username $password); // SMF 1.1.x, SMF 2.0.x
            
$other_passwords[] = md5($password); // Zinfinal
            //
            
if(in_array($data['user_password'], $other_passwords)){
                
// UPDATE
                
db_exec(array(__FILE____LINE__), 'query''UPDATE u_miembros SET user_password = \''.$tsCore->setSecure($pp_password).'\', user_pwtype = \'0\' WHERE user_id = '.$data['user_id'].'');
                
//
                
$data['user_password'] = $pp_password;
            }
           }
        
// CHECAMOS
        
if($data['user_password'] != $pp_password){
            return 
'0: Tu contraseña es incorrecta.';
        } else {
            if(
$data['user_activo'] == 1){
                
// Actualizamos la session
                
$this->session->update($data['user_id'], $rememberTRUE);
                
// Cargamos la información del usuario
                
$this->loadUser(true);
                
// COMPROBAMOS SI TENEMOS QUE ASIGNAR MEDALLAS
                
$this->DarMedalla();                
                
/* REDERIGIR */
                
if($redirectTo != NULL$tsCore->redirectTo($redirectTo);    // REDIRIGIR
                
else return TRUE;
            } else return 
'0: Debes activar tu cuenta';
        }
    } 

y la reemplazaremos por
 
function loginUser($username$password$remember FALSE$redirectTo NULL){
        global 
$tsCore;
        
# Variable
        
$username strtolower($username);
        
# Filtramos si es nombre o email
      
$filter = (filter_var($usernameFILTER_VALIDATE_EMAIL)) ? 'email' 'name';
        
# Consultamos
        
$data db_exec('fetch_assoc'db_exec(array(__FILE____LINE__), 'query''SELECT user_id, user_name, user_password, user_activo, user_baneado FROM u_miembros WHERE LOWER(user_'.$filter.') = \''.$username.'\' LIMIT 1'));
        
# Comprobamos que el usuario exista
        
if(empty($data)) return '0: El usuario no existe.';
      
# Comprobamos la contraseña
      
$user = ($filter === 'email') ? strtolower($data["user_name"]) : $username;
      
$check_pass md5(md5($password) . $user);
      if(
$data['user_password'] === $check_pass) {
          
# Comprobamos que el usuario este activo
          
if(intval($data['user_activo']) === 1) {
            
// Actualizamos la session
               
$this->session->update($data['user_id'], $rememberTRUE);
            
// Cargamos la información del usuario
            
$this->loadUser(true);
            
// COMPROBAMOS SI TENEMOS QUE ASIGNAR MEDALLAS
            
$this->DarMedalla();                
                
/* REDERIGIR */
                
if($redirectTo != NULL$tsCore->redirectTo($redirectTo);
                else return 
TRUE;
            } else return 
'0: Debes activar tu cuenta';
        } else return 
'0: Tu contraseña es incorrecta.';
    } 

Y así de fácil se puede hacer el cambio.
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)