02-16-2022, 02:41 PM
(Última modificación: 02-17-2022, 07:01 AM por Chctrpgo.
Razón: Añadir Prefijo
)
2

Iniciar sesión con email
Esto es bastante rápido y fácil.
1 - Buscamos en inc/class/c.user.php
Código PHP: ( Seleccionar Todo )
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'], $remember, TRUE);
// 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
Código PHP: ( Seleccionar Todo )
function loginUser($username, $password, $remember = FALSE, $redirectTo = NULL){
global $tsCore;
# Variable
$username = strtolower($username);
# Filtramos si es nombre o email
$filter = (filter_var($username, FILTER_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'], $remember, TRUE);
// 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.


Facebook
Twitter
Reddit
Digg
del.icio.us
Tumblr
Pinterest
Blogger
Fark
LinkedIn
Mix
Google