<?php
/*
Agenda Pro - Gestor de contactos web y multiusuario
Copyright (C) 2009 Pedro J. Estébanez y Unai Gómez Velasco
Este programa es software libre: usted puede redistribuirlo y/o modificarlo
bajo los términos de la Licencia Pública General GNU publicada
por la Fundación para el Software Libre, ya sea la versión 3
de la Licencia, o (a su elección) cualquier versión posterior.
Este programa se distribuye con la esperanza de que sea útil, pero
SIN GARANTÃA ALGUNA; ni siquiera la garantÃa implÃcita
MERCANTIL o de APTITUD PARA UN PROPÃSITO DETERMINADO.
Consulte los detalles de la Licencia Pública General GNU para obtener
una información más detallada.
DeberÃa haber recibido una copia de la Licencia Pública General GNU
junto a este programa.
En caso contrario, consulte <http://www.gnu.org/licenses/>.
*/
//Require aborta la ejecución si no está el fichero
require_once 'inc/init.php';
$pAccion = POST('accion');
if ($pAccion == 'login')
{
// Comprobar las credenciales
$pUsuario = POST('usuario', TRUE);
$pPassword = POST('password', TRUE);
$sql = "SELECT * FROM usuarios WHERE Nombre = '"._BD($pUsuario)."'";
$res = query($sql);
$usuario = mysqli_fetch_assoc($res);
$mensajeErrorUsuario = 'El nombre de usuario o la contraseña son incorrectos.';
$mensajeErrorBloqueo = "La cuenta de usuario especificada está bloqueada.\nContacte con el administrador.";
if ($usuario)
{
if (sha1($pPassword.$usuario['GranoSalPassword'].$bdSecreto) == $usuario['HashPassword'])
{
if (!$usuario['Administrador'])
{
// Comprobar si se bloquea por no haberse identificado en N dÃas (salvo que sea administrador)
if (time() - fechaHoraATimestamp($usuario['FechaParaBloqueo']) > $sesionDiasSinLoginBloqueo * 24 * 60 * 60)
{
_LOG('Bloqueado por lÃmite de tiempo sin identificarse.');
$usuario['Bloqueado'] = 1;
$sql = 'UPDATE usuarios SET Bloqueado = 1 WHERE ID = '.intval($usuario['ID']);
query($sql);
$mensaje = $mensajeErrorBloqueo;
}
}
// Comprobar si está bloqueado
if ($usuario['Bloqueado'])
{
$mensaje = $mensajeErrorBloqueo;
}
}
else
{
$mensaje = $mensajeErrorUsuario;
}
}
else
{
$mensaje = $mensajeErrorUsuario;
}
if (!isset($mensaje))
{
// Login correcto
$_SESSION = array();
$_SESSION['idUsuario'] = $usuario['ID'];
$sql = "UPDATE usuarios SET IP = '"._BD(ipCliente())."', FechaParaBloqueo = '".date('YmdHis')."' WHERE ID = ".intval($usuario['ID']);
query($sql);
_LOG('Identificado.');
header('Location: index.php');
}
else
{
_LOG('Identificación fallida.');
}
}
$tituloPagina = 'Identificación';
require_once 'inc/head.php';
?>
<body onload="elById('logUsuario').focus();">
<form id="frmLogin" method="post" action="login.php">
<img src="img/logo.png" width="227" height="80" alt="Agenda Pro" />
<input type="hidden" name="accion" value="login" />
<label for="logUsuario">Usuario</label>
<input type="text" name="usuario" id="logUsuario" />
<label for="logPassword">Contraseña</label>
<input type="password" name="password" id="logPassword" />
<a href="nueva-password.php">Olvidé mi contraseña.</a>
<input type="submit" value="Acceder" />
<?php
if (isset($mensaje))
{
?>
<p id="mensaje"><?php echo _HTML($mensaje); ?></p>
<?php
}
?>
</form>
<?php
require_once 'inc/footer.php';
?>