Sistema de login en KumbiaPHP

Estos ultimos dias he aprendido mucho sobre KumbiaPHP, aprendi de la wiki, el manual y en especial en el IRC de KumbiaPHP. Y quiero ir colocando aqui en el blog lo que voy aprendiendo por 2 razones: Una que me gusta compartir mis conocimientos y otra que asi yo lo tengo de ayuda memoria

Vamos a crear un sistema para el login de usuarios usando la clase Auth, quiero aclarar que estoy usando la version Spirit de KumbiaPHP que la pueden bajar de aqui. Entonces lo primero sera abrir el archivo boot.ini que se encuentra en la carpeta config de nuestra aplicacion e indicarle que debe cargar la libreria auth, el archivo deberia quedar algo asi:

[modules]
libs = auth

Nuestra base de datos sera algo sencilla:

Tabla Usuarios
Tabla Usuarios

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 View::content(); ?><br />
Inicio de Session <br/>
<?php echo form_tag("principal/login"); ?>
<label for="login">Usuario:</label>
<?php echo text_field_tag("login"); ?>
<br/>
<label for="password">Clave:</label>
<?php echo password_field_tag("password"); ?>
<br/>
<?php echo submit_tag("Ingresar"); ?>
<?php echo end_form_tag(); ?></p>

Como veran es un simple formulario con 2 campos: login y password. En el controlador tendremos la accion(funcion) que atendera a ese formulario.

function login(){
if ($this->has_post("login","password")){
$pwd = $this->post("password");
$usuario=$this->post('login');
$auth = new Auth("model", "class: usuarios", "login: $usuario", "password: $pwd");
if ($auth->authenticate()) {
$this->redirect("principal/index");
} else {
Flash::error("Falló");
}
}
}

Como veran la clase auth nos ahorra a nosotros las verificaciones de todo tipo sobre si ingreso bien el password o no y si el usuario existe o no. En caso de que el ingreso sea correcto redirigimos al usuario a otra pagina y en caso de que sea incorrecto mostramos un mensaje de error.

Pero no pensaran que la utilidad de Auth acaba ahi verdad? Podemos…

(más…)

Continuar leyendo

Crear y quitar VirtualHost en Apache

En primer lugar habria que definir que es un VirtualHost verdad? Pues son son Host Virtuales Eso significa que podremos tener varios dominios apuntados a la misma pc. Por lo general solemos tener varios proyectos webs en nuestras pcs, casi siempre acomodamos esos proyectos dentro de una misma carpeta (/var/www o la que sea). Y aunque no es muy incomodo trabajar asi hay algunos a los que les gustaria poder acceder de manera aun mas rapida y comoda a sus proyectos. Por ejemplo si tenemos un proyecto en http://localhost/websocial podriamos querer acceder a el simplemente escribiendo http://websocial

Ahora veamos como crear esos VirtualHost en Linux. Les iba a explicar como hacerlo paso a paso pero la verdad existe una manera mas sencilla. Son 2 script que encontre aqui.

El primero es para crear host virtuales y paso a copiarlo aqui:

#!/bin/bash

if [ -z $1 ]
then
echo "Debe ingresar el nombre del dominio"
exit 1
else
DOMINIO=$1
fi

if [ -z $2 ]
then
RUTA="/var/www/"
else
RUTA=$2
fi

echo "Configurando dominio "$DOMINIO

#CREAMOS LA ENTRADA EN /ETC/HOSTS
echo "127.0.0.1	"$DOMINIO >> /etc/hosts

#CREAMOS EL ARCHIVO DE VIRTUAL HOST
touch /etc/apache2/sites-available/$DOMINIO

#AGREGAMOS EL VIRTUAL HOST
echo "<VirtualHost *:80>
ServerAdmin god@$DOMINIO
ServerName  *.$DOMINIO
ServerAlias $DOMINIO

DocumentRoot $RUTA$DOMINIO/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory $RUTA$DOMINIO/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>" > /etc/apache2/sites-available/$DOMINIO

#CREAMOS EL DIRECTORIO PARA EL DOMINIO
mkdir $RUTA$DOMINIO
chmod 775 $RUTA$DOMINIO

#CONFIGURAMOS APACHE
a2ensite $DOMINIO

#REINICIAMOS APACHE
/etc/init.d/apache2 reload

echo "Listo!"

Su utilizacion es muy sencilla. Primero guardar todo lo anterior en un archivo, por ejemplo crearhost.sh y ahora abrimos una consola y nos movemos a donde esta el archivo y escribimos:

sudo sh crearhost.sh midominio /carpeta/proyecto

(más…)

Continuar leyendo

Varias Vistas para la misma accion en KumbiaPHP

Bueno, extrañe bloggear ya solo me queda un examen pero esta facil asi que vuelvo a postear.

Aprendi varias cosas ultimamente con KumbiaPHP y en parte gracias a la buena onda de los desarrolladores que siempre estan dispuestos a ayudar.

Hoy quiero compartir con Ustedes un metodo sencillo para tener varias vistas para una misma accion en kumbiaPHP.

De que nos sirve esto? Pues esto es una de las ventajas del modelo MVC y nos sirve para muchas cosas. Por ej: Si yo hago una aplicacion web y quiero que tambien pueda ser accedida desde los celulares no es necesario programar toda la aplicacion de nuevo, sino simplemente cambiar la vista pero que el controlador siga siendo el mismo.

Vamos a lo practico.

Supongamos que tenemos un controlador llamado ejemplo_controller.php y el cual tiene una accion index y esa accion queremos que tenga 2 vistas. El controlador tendra el siguiente codigo:

<?php
class EjemploController extends ApplicationController {

function index($var=null){
 $this-&gt;nombre="Fede";
 if ($var=="wap"){
 $this-&gt;render("index2","default");
 }
}

}
?>

(más…)

Continuar leyendo

Leer paginas web con PHP

Se supone que el blog tambien trata la tematica de programacion, pero desde que conoci a KumbiaPHP framework mas que aprender a programar me he dedicado a rascarme ya que solo toma unos dias aprender a usar el framework

Pero igualmente siempre es util algo de informacion para los que recien estan empezando o simplemente no les gusta usar frameworks como mi amigo blogger deckerix que ha preparado este cortito pero sencillo ejemplo de como leer paginas web con php.

Pero con que proposito querriamos leer una pagina web desde otra pagina web? Pues existen muchisimas razones y voy a decirles cuales se me ocurren en este momento:

  • aprovechar los datos mostrados por otra pagina para usarlos en la nuestra (en algunos paises esto se llama «robar contenido» :P)
  • podriamos armarnos un lector de archivos online
  • podriamos procesar el codigo html de una pagina de manera online
  • y estoy escaso de ideas pero es util para muchas cosas

Vamos a los hechos:

(más…)

Continuar leyendo

Como mostrar una tabla con KumbiaPHP framework

Existen muchas maneras de mostrar una tabla, incluso pueden generar reportes en pdf o xls. Yo hoy solo les voy a mostrar la manera simple y que a la vez espero que les ayude a entender un poco mejor el modelo MVC. Recuerden que estoy trabajando con el framework PHP llamado Kumbia. Si se han perdido los posts anteriores pueden verlos aqui.

Vamos a comenzar suponiendo que tenemos una tabla sencilla como la que les muestro a continuacion que se llama ‘bebibles’.

Tabla Mysql
Tabla Mysql

Entonces creaemos un modelo de ActiveRecord en la carpeta models que se llame bebible.php y que contendra el codigo que ya conocemos:

<?php
class Bebible extends ActiveRecord {
}
?>

(más…)

Continuar leyendo