AJAX - Error haciendo login en Ajax

 
Vista:

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
1
2
3
4
5
6
//------Pág Index------\\
	$("#alerta_login").hide();
	$("#btn_enviar").on('click', function(event) {
		event.preventDefault();
		login_AJAX();
	});
El 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');
			}
		}
	})
 
}
Este es cc-login.php

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 87
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Error haciendo login en Ajax

Publicado por joel (30 intervenciones) el 29/09/2020 07:51:48
Has revisado la consola del navegador, para ver exactamente lo que te devuelve el PHP?
Has comprobado que no haya ningún error en la consola?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar