-
Notifications
You must be signed in to change notification settings - Fork 0
/
login.php
94 lines (86 loc) · 2.66 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
88
89
90
91
92
Autentica con la direccion de correo al delegado
Guarda en bbdd una id de sesión de la cookie asociado al usuari y le da la cookie al usuario.
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
<?php
/**
* login.php
* @version 1.0
*
* Página de autenticación.
* Controla la solicitud de los datos de identificación al usuario.
*/
require (dirname(__FILE__) . '/bootstrap.php');
require_once 'includes/ldap_gateway.php';
require_once 'includes/db_gateway.php';
// Recicla cualquier sesion existente.
session_start();
session_regenerate_id(true);
/**
* Muestra los errores si los hay.
*/
function mostrarErrores ($strerror)
{
if (! empty($strerror)) {
?>
<span class="recuadroError">
<?php
echo $strerror;
?>
</span>
<?php
}
}
/**
* Filtra y sanea los campos recibidos del formulario.
*
* @return Un array con los valores del resultado del filtrado.
*/
function filtrarFormulario ()
{
$filtrosCampos = array('username' => array('filter' => FILTER_VALIDATE_INT),
'password' => array());
return filter_input_array(INPUT_POST, $filtrosCampos);
}
$strerror = '';
if (isset($_POST['username'])) {
$formulario = filtrarFormulario();
if ($formulario['username'] && $formulario['password']) {
try {
$user1 = LDAP_Gateway::login($formulario['username'],
$formulario['password']);
if ($user1) {
$delegados = mysqli->query(select nia in delegados);
if(in_array($formulario['username'], $delegados)){
//set cookie
//guardar sesion
$id_session = uniqid();
$_SESSION['id'] = $id_session;
mysqli->query("INSERT into sesiones values($id_session,$formulario['username'] )");
} else {
$strerror = "No es un delegado";
}
header('Location: listadopisado.php');
} else {
$strerror = "Usuario o contraseña incorrectos.";
}
} catch (Exception $e) {
$strerror = "No ha sido posible validarse con el servidor de autenticación. Inténtelo de nuevo más tarde.";
}
} else {
$strerror = "Debe de introducir su usuario y su contraseña.";
}
}
if (! empty($strerror)) {
header("HTTP/1.1 403 Forbidden");
}
// Renderizado de la página
include 'tmpl/header.php';
include 'tmpl/loginform.php';
include 'tmpl/footer.php';
?>