/** * Método que realiza la lógica del login * @param Array $datos Datos necesarios para poder realizar el login * @return Bollean True = cuando se realiza el login sin problemas, False = cuando hay errores */ public static function dologin($datos) { /** * Comprobamos que hay datos */ if (!$datos) { // Sino hay datos damos un error Session::add('feedback_negative', 'No tengo los datos de Login'); return false; } elseif (LoginModel::validar($datos)) { // hacemos la logica del login // primero saneamos el array con los datos $datos = validaciones::sanearEntrada($datos); $conn = Database::getInstance()->getDatabase(); $ssql = "SELECT id, nombre, email, pass FROM usuario WHERE email=:email"; $query = $conn->prepare($ssql); $query->bindValue(':email', $datos['email'], PDO::PARAM_STR); $query->execute(); $count = $query->rowCount(); if (!Database::comprobarConsulta($count)) { Session::add('feedback_negative', 'No estás registrado'); return false; } $usuario = $query->fetch(); if ($usuario['pass'] != sha1($datos['clave'])) { Session::add('feedback_negative', 'La clave no coincide'); return false; } // Iniciamos la sesión Session::set('user_id', $usuario['id']); Session::set('user_name', $usuario['nombre']); Session::set('user_email', $datos['email']); Session::set('user_logged_in', true); Session::add('feedback_positive', 'Sesión iniciada'); // comprobamos que la sesión se esta formando adecuadamente if (Session::comprobarSession()) { return true; } else { Session::add('feedback_negative', 'Error iniciando sesión, intentelo más tarde.'); } } else { // sin no se validan los campos correctamente devolvemos un false // y el reportamos los errores return false; } }