Error haciendo login en Ajax
Publicado por CasinerO (2 intervenciones) el 28/09/2020 17:32:39
Hola, estoy haciendo un login con php, mysql y ajax. He usado la misma estructura para hacer un insertar y un actualizar datos y me trabajo bien. Ahora lo adapte para el login, pero no logro que funcione. Puse un alert en varias partes del codigo para ver donde era que dejaba de funcionar. Por lo que pude ver, el problema esta en la funcion success de ajax. En la pagina php que es la de control de login, deberia devolver un arreglo convertido en json que incluye un mensaje, error y el rol del usuario. Segun el rol, se debe redirigir a una pagina en especifica. Puse un console.log para ver el json devuelto por php, pero no muestra nada. Les dejo el codigo para que puedan revisarlo y gracias de ante mano.
Tengo una duda, ¿el switch deberia hacerlo en el controlador o hacerlo en el ajax?
Este es el codigo que lanza la funcion de login
El ajax
Este es cc-login.php
Tengo una duda, ¿el switch deberia hacerlo en el controlador o hacerlo en el ajax?
Este es el codigo que lanza la funcion de login
1
2
3
4
5
6
//------Pág Index------\\
$("#alerta_login").hide();
$("#btn_enviar").on('click', function(event) {
event.preventDefault();
login_AJAX();
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//Función para login
function login_AJAX() {
//alert ("hasta aquí");
var datos = $("#form_login").serialize();
$.ajax({
url: '../../controlador/cc-login.php',
type: 'POST',
data: datos,
dataType: 'json',
success: function (e) {
if (!e.error) {
console.log(e);
switch (e.rol) {
case 1:
location.href = "../vista/pages/postgrados.php";
break;
case 2:
location.href = "../vista/pages/reportes.php";
break;
default:
alert ("Rol no encontrado");
break;
}
MostrarMensaje($("#alerta_login"));
$("#form_login").trigger('reset');
}
}
})
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Crear arreglo con valores por defecto
$salida = ['error' => true, 'rol' => 1, 'mensaje' => 'Acción no reconocida'];
//Auntentificar Usuario
$result = $ob->Autenticar($usuario, $password);
if(count($result) == 1){
$_SESSION['username'] = $result[0]['nombre'];
$salida['error'] = false;
//Gestion de roles
$_SESSION['rol'], $salida['rol'] = $result[0]['idRol'];
} else {
if (trim($usuario) == "" || trim($password) == "") {
$salida['mensaje'] = 'Excisten campos vacios';
}else{
$salida['mensaje'] = 'Datos Incorrectos';
}
}
// Devolver resultado en formato JSON
echo json_encode($salida);
Valora esta pregunta
0