Archivo

Entradas Etiquetadas ‘base de datos’

Haciendo una buena instalación de CakePHP

Martes, 30 de Diciembre de 2008

Bueno lo primero que habrá que hacer es instalar correctamente CakePHP para empezar a probar y aprender un poquito.

- Nos dirijiremos a la página web de CakePHP y bajaremos la ultima versión, yo en este caso he bajado la versión “1.2.0.7945 RC4″, supongo que cualquier versión que sea 1.2.xxx será todo igual. Pondremos todos los archivos bajados en nuestro servidor (ya sea local o remoto).

Ojo! Hay que tener activado el módulo “Mod_Rewrite”, lo mas seguro esque ya lo tengáis activado, en este caso veréis algo parecido a esto [captura], en caso de que no lo tengáis activado veréis algo sin “estilos cargados” [captura].

- Ahora hay que darle permisos de escritura a la carpeta “tmp” dentro de la carpeta app/

- Pasamos a crear una base de datos y añadimos los datos de conexión en app/config/database.php

- Cambiamos la cadena de seguridad en app/config/core.php, donde pone “Configure::write(‘Security.salt’, ‘*****’);” ponemos cualquier combinación de letras y simbolos que queramos.

Si todo se ha configurar correctamente al acceder a la carpeta de la aplicación os tendran que salir 4 recuadros de color verde que os dicen:

Your tmp directory is writable.

The FileEngine is being used for caching. To change the config edit APP/config/core.php

Your database configuration file is present.

Cake is able to connect to the database.

Con esto ya seremos capaces de empezar a trabajar con CakePHP. Si os surge algún problema en la instalación no dudéis en preguntarmelo.

Lagarto CakePHP , , ,

Subidor de Imagenes (Segunda parte): Base de datos y vistas

Jueves, 18 de Septiembre de 2008

Como siempre, el taller para esta aplicación ira enfocado a conseguir una idea o noción básica sobre el tema, es decir yo os doy una base para que podáis trabajarla y ampliarla según vuestras necesidades.

Dicho esto empezaremos creando la tabla de la base de datos que necesitaremos, como he dicho todo muy simplificado. Necesitaremos un campo que nos diga el nombre de la imagen, otro de ID, uno de fecha y otro de IP para saber desde donde nos suben esas imágenes, por si hubiese abuso esta sería una buena medida de controlarlo.

CREATE TABLE IF NOT EXISTS `imagenes` (
  `id` int(11) NOT NULL auto_increment,
  `imagen` char(255) NOT NULL,
  `fecha` int(11) NOT NULL,
  `ip` char(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

Como veis es todo bastante simple. Podríais añadir campos como el nombre original de la imagen (dado que vamos a modificar su nombre por un hash), tamaño, en caso de que lo hagáis con usuarios pues la ID del usuario y un largo etcétera.

Después de crear la base de datos necesitaremos tener las vistas, es decir lo que el usuario verá. Primero crearemos el formulario para subir la imagen, muy simple, con un simple campo de archivo para que nos suban la imagen.

<fieldset>
	<legend>Subir imagen</legend>
	<form action="index.php/imagenes/index/do" method="post" enctype="multipart/form-data">
		<label for="imagen">Imagen</label>
        <input type="file" name="imagen" id="imagen" />
        <br />
        <label></label>
        <input type="submit" value="Subir" />
	</form>
</fieldset>

Luego crearemos la vista donde se informara al usuario del éxito al subir su fichero y la típica información como podría ser el link, el código para los foros (BBCode) para incluir la imagen con su miniatura, etc..

<p><strong>Tu imagen se ha subido correctamente!</strong></p>
<p>
	<strong>Link de tu imagen</strong>
    <br />
    <a href="<?=base_url();?>uploads/< ?=$file_name?>">< ?=base_url();?>uploads/< ?=$file_name?></a>
</p>
<p>
	<strong>Para foro</strong>
    <br />
    <textarea cols="50" rows="5">[url=< ?=base_url();?>uploads/< ?=$file_name?>][img]< ?=base_url();?>uploads/< ?=$file_name?>[/img][/url]</textarea>
</p>
<p>
	<strong>Para foro con miniatura</strong>
    <br />
    <a href="<?=base_url();?>uploads/< ?=$file_name?>"><img src="<?=base_url();?/>uploads/< ?=$raw_name?>_thumb< ?=$file_ext?>" /></a>
    <br />
    <textarea cols="50" rows="5">[url=< ?=base_url();?>uploads/< ?=$file_name?>][img]< ?=base_url();?>uploads/< ?=$raw_name?>_thumb< ?=$file_ext?>[/img][/url]</textarea>
</p>

Como veréis, uso algunas variables como $file_name que son un array de variables que nos devolverá la función de UPLOAD (subir el fichero) de la librería de CodeIgniter, por el momento os lo creéis y lo veremos en el siguiente artículo. Aun así si queréis ver que variables se nos devuelven y como funciona por encima la librería podéis verlo aquí.

Hasta la siguiente parte ;)

Lagarto Subidor de imagenes , , , , ,

Sistema de Usuarios (Tercera parte): Usando la clase

Sábado, 9 de Agosto de 2008

Siguiendo la clase anterior (dónde construimos la clase Centinela), hoy toca acabar el sistema, creando la interfaz web para que los usuarios puedan registrarse, loguearse, desloguearse y acceder (o no) a secciones privadas.

Antes de empezar, deberíamos tocar algo de la configuración: ya que la clase centinela la cargaremos en la gran mayoría de veces, le diremos que nos la cargue siempre para mayor comodidad. Por lo que iremos a config/autoload.php y pondremos algo así como:

/*
| -------------------------------------------------------------------
|  Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in the system/libraries folder
| or in your system/application/libraries folder.
|
| Prototype:
|
|	$autoload['libraries'] = array('database', 'session', 'xmlrpc');
*/

$autoload['libraries'] = array('database', 'session', 'centinela');

Una vez tenemos hecho esto, procederemos a crear las diferentes partes de la web dónde usaremos la clase.
Leer más…

Lagarto CodeIgniter, Sistema de usuarios , , , , , , , , ,

Gestor de noticias (Sexta parte): Crear un buscador

Lunes, 30 de Junio de 2008

Aprovechando la aplicación que estamos creando del Gestor de Noticias, voy a intentar satisfacer algunas peticiones de algunos usuarios que me preguntan cómo hacer un buscador en CodeIgniter (aunque en PHP es lo mismo ya que para esto apenas uso nada de CodeIgniter).

Antes de empezar la explicación aclarar que lo que lo que estoy haciendo es un buscador muy simple y funcional, el hacer un buscador tiene muchos caminos y complicaciones extras pero no entraré en ello, al menos hoy, así que si estáis buscando cómo hacer un buscador completo y complejo este no es vuestro articulo, aquí vamos a tratarlo desde un punto de vista de iniciación.

Primero de todo necesitaremos crear unos índices FULLTEXT en nuestra base de datos para que podamos realizar bien la búsqueda con la sintaxis MATCH…AGAINST, para ello lo haremos con este código SQL:

ALTER TABLE `noticias` ADD FULLTEXT(`titulo`, `cuerpo`);

Leer más…

Lagarto CodeIgniter, Gestor de noticias , , , , , , , , ,

Gestor de noticias (Cuarta parte): Formularios y validación

Sábado, 10 de Mayo de 2008

El otro día, en la tercera parte de estos tutoriales os enseñé lo que era el scaffolding y como nos servía para testear rápidamente nuestra aplicaciones, pero realmente no sirve como una herramienta de administración, así que para ello deberemos crear un formulario que nos permita añadir nuevas noticias a la web.

Para ello necesitaremos:

  1. Formulario para añadir los datos
  2. Código que nos valide que los datos del formulario son correctos
  3. Código que nos añada lo que recogemos del “1″ a la base de datos.

Leer más…

Lagarto CodeIgniter, Gestor de noticias , , , , , , ,

Gestor de noticias (Segunda parte): Controladores

Viernes, 11 de Abril de 2008

Recapitulando, habíamos creado nuestra plantilla y luego la habíamos divido en una cabecera y un pie de página.

En este capitulo crearemos nuestro primer controlador, veremos algún ejemplo de funcionamiento con el típico “Hola Mundo!” y algunos otros detalles.

Para empezar explicaré cómo funciona todo esto de los controladores. Como expliqué en la “primera parte”, los controladores son los que coordinan las vistas, el “código” y los modelos. La arquitectura de un controlador es una clase, dónde cada función responderá según nuestra URL, me explico:

http://www.tu-web.com/(index.php)/controlador/función/[variables]

Leer más…

Lagarto CodeIgniter, Gestor de noticias , , , , , , , , , ,

Cómo instalar CodeIgniter en vuestro servidor

Lunes, 7 de Abril de 2008

En este articulo intentaré explicaros paso a paso cómo instalar CodeIgniter del que ya os he hablado. Aunque es muy sencillo de instalar a diferencia de otros frameworks siempre pueden surgir algunas dudas y problema que intentaré resolver a continuación.

Si seguís los pasos en orden seguro que no habrá ningún problema durante la instalación, aun así si tenéis algún problema no dudéis en comentármelo, que después de haberlo instalado en muchos servidores distintos ya estoy algo curtido en ese tema ;) Leer más…

Lagarto CodeIgniter , , , , , , ,