/** * Obtenemos si hay un usuario logueado o no. * @return bool */ public static function is_login() { // Verifico si ya tengo un valor. if (!isset(self::$is_login)) { // Verifico cookie + session. if (!isset($_SESSION['usuario_id'])) { if (Cookie::cookie_exists('usuario_id')) { $_SESSION['usuario_id'] = Cookie::get_cookie_value($cookiename); } } // Verifico si existe el valor en la session. if (isset($_SESSION['usuario_id'])) { // Verifico si está en la base de datos. $model_session = new Model_Session(session_id()); // Verifico el tiempo. if ($model_session->expira !== NULL) { if ($model_session->expira->getTimestamp() < time()) { // Termino la sessión. $model_session->borrar(); self::$is_login = FALSE; } else { // Actualizo la session. $model_session->actualizar_expira(session_cache_expire() * 60); self::$is_login = TRUE; } } else { self::$is_login = FALSE; } unset($model_session); } else { self::$is_login = FALSE; } } return self::$is_login; }
/** * Redireccionamos a la ruta provista. * @param string|array $url URL o segmentos de la URL a donde redireccionar. * @param bool $save_current Si guardamos la URL para que el usuario pueda regresar. * @param bool $go_saved Si tratamos de ir a una ruta guardada. */ public static function redirect($url, $save_current = FALSE, $go_saved = FALSE) { // Verifico ruta guardada. if ($go_saved && Cookie::cookie_exists('r_u')) { $url = Cookie::get_cookie_value('r_u'); Cookie::delete_cookie('r_u'); } // Si tenemos los segmentos generamos la URL. if (is_array($url)) { $url = '/' . implode('/', $url); } if ($url[0] == '/') { $url = substr($url, 1); } $url = SITE_URL . $url; // Verifico si tengo que guardar la URL. if ($save_current) { Cookie::set_classic_cookie('r_u', Request::current()); } // Redireccionamos. header("Location: {$url}"); die; }