public static function checkAutentication() { // No es necesario la inicialización de la sesión pero es una comprobación más Session::init(); if (!Session::comprobarSession()) { Session::destroy(); Session::init(); Session::set('origen', $_SERVER['REQUEST_URI']); header('location: /Login'); exit; } }
/** * 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; } }
/** * Método de inserción del usuario en la DB * @param Array $array Datos a insertar * @return Boolean true = si se inserta, false = sino se inserta */ public static function insert($array) { // creamos la consulta $ssql = 'INSERT INTO usuario (nombre, apellido, email, pass) VALUES (:nombre, :apellido, :email, :pass)'; // las insertamos y se inserta generamos la sesión if (Database::consulta($ssql, $array, $estado = 3)) { $id = $_POST['last_id']; Session::set('user_id', $id); Session::set('user_name', $array[':nombre']); Session::set('user_email', $array[':email']); Session::set('user_logged_in', true); // comprobamos que la sesión se ha iniciado correctamente if (Session::comprobarSession()) { Session::add('feedback_positive', 'Cuenta creada correctamente'); return true; } Session::add('feedback_negative', 'Ha ocurrido un error al iniciar sesión, intentelo de nuevo más tarde'); return false; } else { Session::add('feedback_negative', 'La cuenta no ha sido creada correctamente'); return false; } }