Hace mucho publique un tuto de un sistema de login para kumbiaphp y queria mostrar como hacerlo ahora con la beta2 de kumbiaphp.
Vamos a hacer uso de la libreria Auth que sirve justamente para facilitar toda esta tarea de autenticacion de usuarios.
Vamos a suponer que tenemos una tabla como la siguiente:

Vamos a tener un controlador llamado principal_controller.php con 2 acciones: index y login. Y tendremos 2 vistas correspondientes a esas acciones. Ya saben que index siempre va, aunque en este ejemplo no la vamos a usar para nada.
Lo primero para que los usuarios se logueen sera un formulario de logueo, entonces creamos el archivo login.phtml en la carpeta views/principal que contendra el siguiente codigo:
<?php echo View::content(); ?> <?php echo Form::open("principal/login"); ?> <?php echo Form::label("Usuario","login"); ?> <?php echo Form::text("login"); ?> <?php echo Form::label("Password","password"); ?> <?php echo Form::pass("password"); ?> <?php echo Form::submit("Ingresar"); ?> <?php echo Form::close(); ?>
Es solo u formulario con 2 campos: login y password. En este archivo podemos ver varios cambios con respecto al tuto anterior. Esa es la forma de crear un formulario en beta2 y en las futuras versiones. Pueden ver mas sobre la clase para el manejo y creacion de formularios en la wiki de kumbiaphp.
Ahora vamos a crear la accion «login» en el controller «principal» con el siguiente contenido:
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()) { Router::redirect("principal/index"); } else { Flash::error("Falló"); } } }
En la linea
if (Input::hasPost("login","password"))
Verificamos que se reciban datos desde el formulario.
Luego guardamos los valores recibidos de los campos en 2 variables:
$pwd = Input::post("password"); $usuario=Input::post("login");
Luego se crea una nueva instacia de la clase Auth pasandole como parametros el modelo «usuarios», y la variables anteriores. Y con la linea
if ($auth->authenticate())
podran saber si la autenticacion fue correcta o si hubo un error en el usuario o la pass.
Y no deben olvidarse de crear el modelo usuarios.php en la carpeta models con el siguiente contenido:
<?php class usuarios extends ActiveRecord{ } ?>
Hay otras utilidades que podemos darle a la clase Auth, por ejemplo en cualquier controller y cualquier accion pueden saber si hay un usuario logueado con el simple uso de :
if(Auth::is_valid()){ Flash::success("Usuario logueado"); }
Y tambien podemos saber los otros datos de la tabla usuarios asi:
$this->telefono=Auth::get('telefono'); $this->edad=Auth::get('edad');
Y por ultimo para desloguear a un usuario se debera usar:
Auth::destroy_identity();
Que anulara la login actual.
Tambien me cuando me pase por el IRC de kumbiaphp vi que existen otro metodos para crear un sistema de login, recomiendo que entren y pregunten alli porque hay mucha gente que sabe….y yo
[…] Actualizacion: cree otro tutorial adaptado a la beta2 y superiores de kumbiaphp. Pueden verlo aqui. […]
Buenas, si me das un feed del tag de KumbiaPHP de los post de tu blog será fácil hacerte aparecer en el planeta, he visto que tienes varias… la que mas te convenga por fa pasala…
Todo lo que escribo sobre KumbiaPHP esta en la categoria https://paraisolinux.com/category/desarrollo/kumbiaphp/
:)
saludos…ha y pongo este ejemplo en la wiki o no?
ok ya apunte esa url… si gustas lo pasas… aunq ahora publicaré un post en el blog de kumbiaphp recolectando algunos post de interés para todos…
Hola Eduardo, yo hace poco hice un post sobre como hacer el login pero no contra una BD sino utilizando un servidor SMTP, el clasico que te dan los Hosting, revisalo y si tienes algun alcance por favor me avisas.
http://dairdev.blogspot.com/2010/10/kumbiaphp-login-de-la-aplicacion.html
Esta muy bueno tu articulo….hizo qm den ganas de volver a programar :)
graicas es todo un halago, te agregué a mi Blogroll ^_^
hola queria saber si se puede hacer un index o pantalla a la cual puedan entar solo poniendo un codigo exacto eje: 4141 y si no ponen eso que SIGA PARTICIPANDO.. gracias!
Pues es bastante sencillo. Solo debes tener un formulario comun y luego al capturar los datos del campo de texto lo comparas con 4141, si es igual que lo rediriges a una pagina y sino a otra
Buenas, estoy construyendo una pequeña aplicación web usando el framework kumbiaphp y me surge un problema. Tengo montado un kumbiaphp 1.0 sobre un servidor apache en archlinux pero cuando visualizo la página en el navegador el código php no se ejecuta, se que no es lugar para preguntar pero no encuentro nada similar en la web.
Gracias por cualquier ayuda.
Puedes poner una captura del error? Tal vez te pueda ayudar pero no entiendo bien que es lo que pasa.
De todos modos, en los foros y en el irc de kumbia saben muchisimo mas que yo :P
no entiendo donde es que debería ir cada archivo, ademas veo que te faltaron etuquetas como
si pudieras dejarlo mas claro te lo agradeceria, el post esta orientado a alguien que ya aya trabajo con el framework
Saludos
Al inicio del articulo hay 2 enlaces para ir a la parte donde se explican pasos anteriores. Por ejemplo donde va cada archivo.