Mostrando las entradas con la etiqueta PHP. Mostrar todas las entradas
Mostrando las entradas con la etiqueta PHP. Mostrar todas las entradas

viernes, 22 de octubre de 2021

Simple Login con KumbiaPHP v 1.1.5

Recientemente tuve necesidad de implementar un Sistema de Login con KumbiaPHP y pude percatarme que prácticamente todas las referencias publicadas en la comunidad de Kumbieros se encuentran bastante desactualizadas; algunas hasta por casi una década. De manera que, me pareció adecuado compartir una sencilla solución que implemente con la versión actual de KumbiaPHP v1.1.5

Para comenzar, vale la pena señalar que no pretendo descubrir el agua tibia, esta solución no es más que la recopilación y conveniente ajuste de varias aportaciones encontradas en diferentes fuentes disponibles en la red. Pero tampoco hagamos alharaca de eso y vayamos a lo concreto.

Construyendo el Sistema de Login

Librería de Autenticación

Si bien es cierto que en KumbiaPHP v1.1.5 contamos con Auth2 e incluso con una implementación propia en Kumbia_Auth para facilitar las tareas de autenticación de usuarios, en esta solución haremos uso de la libreria Auth.

Persistencia de datos

Por supuesto que cada solución tendrá necesidades específicas; pero en nuestro caso, hemos procurado mantener la total simplicidad, de manera que para la persistencia de datos nos resulta suficiente disponer de una tabla como la que podemos generar con el siguiente script

--
-- Estructura de tabla para la tabla usuarios
--
DROP TABLE IF EXISTS usuarios;
CREATE TABLE IF NOT EXISTS usuarios (
id TINYINT(3) NOT NULL AUTO_INCREMENT,
login VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
level TINYINT(3) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY `UK_Usuarios_login` (`login`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Volcar la base de datos para la tabla usuarios
--
INSERT INTO usuarios (id, login, password, level) VALUES
(1, 'coloca-aqui-tu-usuario', 'coloca-aqui-tu-password', 1);

Tampoco hemos de fijarnos para este ejercicio en la falta de encriptación de la columna que almacenará los passwords. Aunque por supuesto, es una practica que recomendamos considerar.

Modelo

Nuestra clase de modelo será tan sencilla como

<?php
class Usuarios extends ActiveRecord
{ }

Controlador

En un controlador que como otros autores hemos nombrado PrincipalController hemos implementado las funciones login y logout, junto con el siempre mandatorio index, que en nuestro caso, mantenemos vacío.

Login

La función de login inicia con la verificación de los datos recibidos, antes de enviarlos a la librería Auth para la ejecución de la autenticación.

    public function login(){
        if (Input::hasPost("login","password")){
            $pwd = Input::post("password");
            $usuario=Input::post("login");
 
            $auth = new Auth("model", "class: usuarios", "login: $usuario", "password: $pwd");
            if ($auth->authenticate()) {
                Redirect::to("/");
            } else {
                Flash::error("Falló");
            }
        }
    }

Logout

En la función logout, básicamente destruimos el objeto de la sesión

    public function logout(){
        Auth::destroy_identity();
        Redirect::to("/");
    }

Vista

Por supuesto que, hemos mantenido la capa de vista igualmente simple, aunque claro que necesitaremos construir nuestro formulario de ingreso.

El index.phtml como ya hemos mencionado lo mantenemos vacío. Y aunque presuntamente el logout.phtml pudiera haberse mantenido igualmente vacío, la verdad le hemos colocado…

<?php echo View::content(); ?>

No haremos de ello un tema, solo pasemos a lo interesante. Que por supuesto, es el login.phtml.

En este archivo, además del clásico…

<?php echo View::content(); ?>

Hemos de colocar nuestro formulario

<?php echo F<?php echo Form::open("principal/login"); ?>
<i class="fas fa-user-alt"></i><?php echo Form::label("Usuario","login"); ?>
<?php echo Form::text("login"); ?>
<?php echo Form::label(" "," "); ?>
<i class="fas fa-key"></i><?php echo Form::label("Password","password"); ?>
<?php echo Form::pass("password"); ?>
<?php echo Form::label(" "," "); ?>
<?php echo Form::submit("Ingresar"); ?>
<?php echo Form::close(); ?>

Con lo cual ya tendremos implementado nuestro simple sistema de login en KumbiaPHP v1.1.5, pero ahora toca usarlo.

miércoles, 28 de junio de 2017

Now Available #Eclipse IDE Oxygen 4.7

Oxygen_011Hoy 28 de junio 2017, la Fundación Eclipse anunció haber liberado la nueva versión del popular IDE Eclipse 4.7 Oxygen; y pues, como a pesar de que pudiera yo ser catalogado como Generación N, quienes me conocen saben que no soy como Genny, así que tenía que traérselas.

packagesEclipseEclipse IDE ha evolucionado de manera bastante regular y disciplinada convirtiéndose de manera indiscutible en el IDE favorito entre los desarrolladores No Microsoft, no solo para el desarrollo de aplicaciones empresariales, sino también para del desarrollo web, esto último gracias a su cada vez mejor soporte a la tecnología PHP.

En esta versión Eclipse Oxygen se espera ofrezca algunas novedades que seguramente llamaran la atención de más de uno.

 

Pero tampoco voy a adelantarme contándoles que Eclipse Oxygen ya tiene integración con PHPUnit para el testing y con Composer para la administración de dependencias en proyectos PHP. Dejaré que ustedes se hagan cargo de descubrir los detalles de eso.

 

Obteniendo Eclipse IDE Oxygen

Obtener Eclipse IDE Oxygen sigue siendo tan sencillo como como hasta ahora ha sido obtener a sus predecesores. Solo hay que visitar el sitio oficial http://bit.ly/1jhGMCk pulsar el botón download que nos llevará a la sección desde donde podremos descargar el instalador.

Haga click para ver el pase de diapositivas.

 

Instalando Eclipse IDE Oxygen

Una vez descargado el archivo ejecutable, hacemos doble click en este y se abrirá el asistente donde podremos elegir la opción que deseamos instalar.

Oxygen_007

En mi caso particular: Eclipse IDE for Java EE Developers.

Y luego seguir el asistente, que es tan simple como indicarle donde queremos que se instale y si deseamos que coloque accesos directos en el escritorio y/o el menú inicio. Pulsar el botón [INSTALL] y esperar a que concluya.

 

Y ya tendremos nuestro fabuloso Eclipse IDE Oxygen listo para comenzar.

Oxygen_012

Eso si, no olviden regresar a dejar sus comentarios.

 

Espero te haya parecido interesante este post.

………….

Quiero man.tener.me informado: Seguir en Twitter @eldavid_oficial https://twitter.com/eldavid_oficial

Regálame un ME GUSTA. Y si eres solidario, COMPARTE para que otros puedan aprovecharlo.

 


Archivado en: Eclipse, Informática e Internet, Java, Microsoft, OpenSource, PHP Tagged: Eclipse, IDE, Java, Microsoft, PHP, Web

viernes, 12 de mayo de 2017

Promueve los antiguos posts de tu #Wordpress con una simple sentencia #SQL

Hace aproximadamente unos quince (15) años desarrollé Esfera5, el Portal Espiritual de la Red.

Mucha lluvia ha caído desde entonces, pero a pesar de todas las situaciones, momentos y experiencias que han venido llenando mi vida, continúo sin abandonar aquella primera experiencia de emprendimiento.

Gente se ha acercado y gente se ha alejado, he cambiado conceptos y tecnologías, de HTML a PHP con PHPNuke y algunos otros CMSs del momento como PostNuke, Mambo, y luego Joomla; pero Esfera5 continúa vivo aunque poco actualizado.

Recientemente me preguntaba, si podría darle un poquito mas de vida ahora que preparo su nueva versión sobre Wordpress (http://esf.era5.mx/beta/), así que me tomé algo de tiempo para buscar algunos plugins que me permitieran inyectar algo de oxigeno a este sitio.

Encontré el plugin Republish Old Posts que vuelve a publicar mensajes antiguos automáticamente estableciendo la fecha a la fecha actual.




Sin embargo, si se quiere ir más allá de 90 días, requieres comprar una licencia Pro, la cual aunque ciertamente no resulta costosa (US$9.95), pero como aún no estamos en condición de adquirirla ya que no han habido muchas Donaciones para este proyecto (de hecho no ha habido ninguna), busque un poco más para ver de que manera podía resolver este asunto.

Al no encontrar una opción viable a pesar de la amplia oferta de plugins que hay disponibles para Wordpress, cambié un poco la perspectiva del problema.

Ingresé al panel de mi hosting y accedí a la base de MySQL haciendo uso del phpMyAdmin. Identifiqué la tabla de los posts y allí las columnas que albergan las fechas.

Una rapida búsqueda me proporcionó la estructura de la sentencia SQL que debía ejecutar. Agradecimiento a Adi por ese tip compartido en StackOverflow (http://stackoverflow.com/questions/14491906/changing-year-in-mysql-date).

That's simple:
for DATETIME:
UPDATE table_name
SET date_col=DATE_FORMAT(date_col,'2013-%m-%d %T');
for DATE:
UPDATE table_name
SET date_col=DATE_FORMAT(date_col,'2013-%m-%d');

Como se vé, no se necesita mucho esfuerzo para construir la sentencia que vendría a promover los antiguos posts, pero igualmente se las comparto por si alguien más anda en estos mismos menesteres.


UPDATE `xxx_posts` SET `post_date`= DATE_FORMAT(`post_date`,'2016-%m-%d %T') ,`post_date_gmt`= DATE_FORMAT(`post_date_gmt`,'2016-%m-%d %T') ,`post_modified`= DATE_FORMAT(`post_modified`,'2016-%m-%d %T') ,`post_modified_gmt`= DATE_FORMAT(`post_modified_gmt`,'2016-%m-%d %T') WHERE 1 

No olviden cambiar el prefijo de la tabla por el que hayan definido para la instalación de su wordpress.




Espero te haya sido útil este post.

………….

Quiero man.tener.me informado: Seguir en Twitter @eldavid_oficial https://twitter.com/eldavid_oficial

Regálame un ME GUSTA. Y si eres solidario, COMPARTE para que otros puedan aprovecharlo.