¡Bienvenido a PHPost!

Para participar en el foro, descargar complementos y acceder al chat, es necesario tener una cuenta activa.
Por favor, regístrate utilizando un correo electrónico válido para completar la activación.

Descarga Risus Nova 2.0   (Ver notas de la versión) Estable | Actualizado: 16/06/2026

Regístrate Descargar Risus Nova
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)