/
login.php
87 lines (87 loc) · 3.43 KB
/
login.php
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
include_once 'includes/php_comun.php';
/* 1. Evaluar estado del visitante. Si ya esta logueado/a entonces redireccionar al home del sitio.
IMPORTANTE: Debemos iniciar la sesión en le header o si no el superglobal $_SESSION no estará disponible.
*/
if( array_key_exists('usuario_id',$_SESSION)){
// Ya está logueado, enviar al home.
header("Location:index.php");
exit;
}else{
/*
2. Determinar origen del usuario. Si llego desde el menú de navegación, mostrar el formulario de login. Si llegó desde el formulario, evaluamos que exista la llave "li-submit" en el $_POST
*/
if(array_key_exists('li-submit',$_POST)){
// 3. Procesar información del formulario
// Para validar, incluímos las funciones del programa en el header.
$correo=limpiarString( $_POST['li-correo'] );
$contra=$_POST['li-contra'];
// 4. Conectarse a la base de datos
$bd=bd_conectar();
// 5. Preparar petición
$query="SELECT * FROM blog_usuarios
WHERE usuario_correo = '$correo'
AND usuario_password = SHA1('$contra')";
// 6. Enviar la petición
$resultado = $bd->query( $query );
/* 7. Evaluar el resultado de la petición.
// echo '<pre>' . print_r( $resultado, 1 ) . '</pre>';
Revisar si el valor de la propiedad "num_rows" es igual a 1 (uno), si lo es, significa que encontró un usuario con las credenciales entregadas. Si no, significa que las credenciales están equivocadas o el usuario no se ha registrado a la plataforma.
*/
if( $resultado->num_rows === 1 ){
/* 8. Usuario existe, loguear en la Session
Asociar los valores recupeardos de la petición a la $_SESSION
*/
$fila = $resultado->fetch_assoc();
// echo '<pre>' . print_r( $fila, 1 ) . '</pre>';
$_SESSION['usuario_id'] = $fila['usuario_id'];
$_SESSION['usuario_nombre'] = $fila['usuario_nombre'];
$_SESSION['usuario_apellido'] = $fila['usuario_apellido'];
$_SESSION['usuario_correo'] = $fila['usuario_correo'];
$_SESSION['usuario_rol'] = $fila['usuario_rol'];
// Cerrar conexion a la base de datos
bd_cerrar( $bd );
// Redireccionar al home
header("Location:index.php");
}else{
// Usuario no existe o sus credenciales están malas. Notificar y mostrar el formulario.
$estado='notificar+formulario';
}
}else{
// Mostrar el formulario.
$estado='formulario';
}
}
?>
<!DOCTYPE html>
<html lang="<?php include_once 'includes/lang.php';?>">
<head>
<?php
$titulo='Login';
$selectorActivo='#menu li a.login';
include_once 'includes/head.php';
?>
</head>
<body>
<div id="contenedor">
<?php
include_once 'includes/header.php';
include_once 'includes/nav.php';
?>
<section class="contenido">
<?php if ($estado) {
if ($estado=='notificar+formulario') {
notificar( '<p>Tu correo y password no coinciden. Inténtalo nuevamente o <a href="registro.php">regístrate.</a></p>' );
include('includes/formulario-login.php');
} elseif ($estado=='formulario') {
include('includes/formulario-login.php');
}
}
?>
</section>
<?php
include_once 'includes/footer.php';
?>
</div>
</body>
</html>