Manuales

[Manual - Codeigniter] Programando php en MVC con CodeIgniter [Parte 1]

Antes de empezar con este post, quiero ofrecer disculpas ya que no he sido constante en el blog, sin embargo cuando estén casados y esperando un bebe sabrán que hay cosas que son mas importantes jaja.
También déjenme comentarles que estoy planeando un cambio de diseño en el blog, algo que no modifique mucho la estructura pero que se vea elegante, esos son los planes a futuro, bueno ahora si pasemos al post.

A mi siempre me ha gusto programar directamente sin usar algún tipo de Framework
o algo similar (a excepción del Blog que uso WordPress), sin embargo ahora que estoy viendo como programar el proyecto empecé a buscar opciones que aligerarán mi carga de trabajo, pero a la vez que fuera muy flexible para meter código donde fuera necesario (claro de una manera ordenada).

Entonces empecé a buscar algún Framework que me satisficiera, pensé en Zend, en Smarty, Phpbb, Xtemplate, etc, sin embargo esta dudoso, como que una parte me decía que si y otra que no, entonces conocí a CodeIgniter, un Framework que si bien no es tan conocido como Zend o Symphony, si es muy potente y muy simple de usar y puede llegar a ser tan potente como los dos anteriores.

Ahora bien, me puse a investigar como instalar y como hacer mi !Hello Word!, así que aquí les pongo como le hice y como quedo.

[PASO:1]

Requisitos:

  • Tener php 4 o superior instalado
  • Base de datos MySQL(soporta otras)

[PASO:2]

  • Obtenemos CodeIgniter de la siguiente URL  http://codeigniter.com/download.php
  • Lo copiamos dentro de nuestra carpeta raíz de htdocs (en Apache)
  • Hay dos carpetas una se llama system y otra user_guide, además de otros archivos

[PASO:3]

  • Ahora procederemos a configurar nuestro CodeIgniter
  • Primero abrimos el siguiente archivo system/application/config/config.php y buscamos la línea $config['base_url'] = “http://localhost/CodeIgniter/”; en donde pondremos la ruta de nuestra carpeta que acabamos de descomprimir
  • Para conectar la base de datos hay que editar el archivo system/application/config/database.php en donde dice
  • $db['default']['hostname'] = “localhost”;

    $db['default']['username'] = “”;

    $db['default']['password'] = “”;

    $db['default']['database'] = “”;

    y Ahi colocamos los valores que usamos para conectarnos a nuestra base de datos.

[PASO:4] Ahora debes de entrar a la url que pusiste y te debe de aparecer el siguiente mensaje.

[PASO:5]
Ahora si entras a system/application veras muchas carpetas, las que nos interesan son las siguientes config, controlles, views y models.
Abrimos el archivo system/application/config/routes.php en donde buscaremos lo siguiente $route['default_controller'] = “welcome”; (esta en la línea 43 aproximadamente) esta la vamos a cambiar por el nombre de nuestro controlador que vamos a usar, su sintaxis es muy simple, debe de ser el nombre del archivo donde haremos el controlador, por ejemplo si nuestro archivo controlador se llamara test.php quedara así $route['default_controller'] = “test”; si el controlador se llamara delfines.php quedaría $route['default_controller'] = “delfines”;
Nota: Es muy importante lo anterior ya que toda la sintaxis que usa CodeIgniter sigue esta estructura
Ya que lo editamos cerramos ya abrimos el controlador, por default esta el controlador welcome, el cual recordemos que estaba por default dentro de routes.php, ahora creamos nuestro controlador con el nombre que deseemos, por ejemplo biblioteca.php, (recuerden cambiar en routes.php $route['default_controller'] = “welcome”; a $route['default_controller'] = “biblioteca”; )
Abrimos nuestro controlador y escribimos lo siguiente.


class Welcome extends Controller {

function Welcome()
{

parent::Controller();

}
function index()
{
echo "Hola Mundo";
}
}

Lo que tenemos en muy simple, creamos una clase la cual extiende de Controller con lo cual obtiene todos los métodos y propiedades de un controlador genérico de CodeIgniter, vemos el método Welcome, el cual es necesario ya que tu constructor local anularia al constructor de la clase padre Controller, por lo tanto necesitamos llamarlo manualmente. en el caso de php5 podemos optar por usar.


function __construct()
{
parent::Controller();
}

Es lo mismo.

Luego tenemos el método index, el cual se ejecuta cuando entremos al index.php(después del método constructor) y le decimos que escriba “Hola mundo”, si bien esto no tiene nada de MVC, es para ver que esta funcionando deberemos entrar a

http://localhost/codeigniter/biblioteca/

Y nos deberá arrojar “Hola Mundo”

Queda pendiente el ejemplo MVC completo, cualquier duda pueden preguntar, recuerden pueden empezar a probar para que vean como funciona.

Leer más

[Linux] Solución a la baja velocidad de internet en Open Suse 11.0

Tal como les comente ando bien apurado con un buen de cosas, y probablemente el blog va a sufrir una ligera crisis en estos días, pero bueno, lo chido es que mis 200 Lectores de Feeds sigen activos :-) , eso es bueno.

Ahora pasando a otras cosas, les platico que desde que instale Open Suse 11, me pasaba lo siguiente cuando me conectaba a Internet, la resolución de nombres era lenta, aquí pongo una lista para que vean, como estaba la situación.

  • Abrir Firefox 1-3 Segundos
  • Escribir Ajaxman.net  3-4 Segundos
  • Resolución de nombres de dominio (DNS) 10-20 o hasta 30 segundos
  • Respuesta de la pagina y mostrar en pantalla 5-9 Segundos
  • Si había una conexión con Twitter o con Google, o algún otro servicio, volvía ha hacer la resolución de nombres o sea otros 30 segundos mas o menos
  • Esto solo sucedía en mi pc con Linux.

El problema en si no era la conexión a Internet, si no la resolución de nombres el DNS.

Sabia que algo tenia que hacer pero no soy tan bueno en Linux, pues estuve sufriendo así mas o menos un mes.

Leyendo foros y mas di con el problema, ya que a primera vista, no sabia cual era el problema, ya cuando di con el busque como resolverlo.

La solución era simple, modificar los dns’s. Y ¿Como hacemos eso?

Bueno se supone que en Suse ya todo biene mas APP(*) , pero para verlo mas Geek, lo haremos a manita.

Como primer paso toca modificar el archivo resolv.conf, para esto veamos que contiene dicho archivo, recuerden hacer un respaldo en caso de que algo vaya mal

Ajaxman:/home/javier # cat  /etc/resolv.conf

Archivo resolv.conf

Ahora si observamos lo siguiente

#search gateway.2wire.net
#nameserver 192.168.1.254

Ahorita están comentados pero al principio no, osea en vez de eso que les puse estaba así

search gateway.2wire.net
nameserver 192.168.1.254

Entonces, al parecer el problema viene de que al parecer suse, intenta resolver nombres en el router, lo cual es incorrecto, ya que el no es un servidor de DNS.

Entonces la solución es simple modifiquemos el archivo, agregándole unos DNS’s buenos, yo en lo personal use Open DNS, los cuales son los siguientes.

200.33.146.233
200.33.146.169

Ahora lo editamos con el Vi

Ajaxman:/home/javier # vim  /etc/resolv.conf

Para que quede asi

Archivo resolv.conf editado

Archivo resolv.conf editado

Ahora bien, ya debe de funcionar bien, sin embargo tendremos un problema, cada vez que, reiniciemos la tarjeta de red (NIC), o cuando reiniciamos el servicio dhclient, veremos que nos borrar este archivo y nos lo deja como estaba al principio.

Bien para solucionar esto basta con editar dos archivos(en estos no pongo capturas por que están muy grandes los archivos), el primero es.

Ajaxman:/home/javier # vim /etc/sysconfig/network/dhcp

Leer más

[Manual] El archivo de configuracion del servidor Apache httpd.conf

Lamentablemente a pesar de que había empezado bien ha postear en este mes otra vez estoy dejándolo, y culpen de eso a meneame jaja y a microsiervos entre otros, no ya en serio, si que he tenido unos días complicados, pero bueno ya pasaran, por cierto en 3 meses exactamente me caso , luego les platicare mas de esto.

Bien esto les platico por que he recibido un par de comentarios que me piden que postee mi archivo de configuracion de apache el httpd.conf, pero como les comente a veces me quedo sin tiempo, por eso en hoy en una escapada que me he dado les pondré mi archivo de configuracion httpd.conf, en su configuracion para Windows.

Les cuento brevemente donde esta regularmente y para que sirve o vamos en pocas palabras que es este archivo con este nombre tan raro para muchos.

Apache

Cuando instalamos apache en windows a mano, osea sin usar Wamp o appserver o algunas de esas cosas, si seguimos el manual que postee, aqui “Manual de instalación y configuración de Apache, Php y MySQL“, y se instala Apache por default en la carpeta: C:\Archivos de programa\Apache Software Foundation\Apache2.2\conf , se crear un archivo llamado httpd.conf, el cual guarda los parámetros de la configuracion global y completa de nuestro servidor apache, en Linux regularmente se guardaria en /etc/apache2/http.conf.

En dicho archivo podremos instalar modulos para que funcione php, cgi’s, compresion gzip, proxies, modrewrite (para reescribir urls y en vez de tener direcciones art.php?id=1,art.php?id=2 etc, se vea como articulos/vendemos_gatos_a_domicilio, articulos_renta_de_autos, etc), SSI (es i no es l), etc.

Tambien dentro de este archivo podremos configurar los mimetypes, con lo cual le decimos a apache como debe de interpretar ciertos tipos de archivos, asi como posibilidad usar vhosts, configurar rutas, email del administrador, bueno en pocas palabras casi todo, lo que queramos hacer con Apache lo podemos hacer desde este archivo, a continuación les posteo el archivo es un poco grande, solo remarcare y comentare los punto importantes.

Cabe destacar que si deseamos hacer un comentario desde nuestro httdp.conf podemos usar la el carácter de numero o de gato como se le conoce a este (#) y a continuación el comentario.

Archivo httpd.conf
Lo puse en lo siguiente por que el archivo es muy grande y deformaria mucho la pagina de inicio, :-)

Leer más

[Manual de Java] La JVM: Java Virtual Machine

Para entender mejor a java vamos a dedicarle gran cantidad de posts, asi que en este post hablaremos sobre la JVM osea la maquina vitual de Java, algunos post seran de puras definiciones(o casi) depues empezaremos con los ejemplos.

Una Máquina virtual Java (en inglés Java Virtual Machine, JVM) es un programa nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (el Java bytecode), el cual es generado por el compilador del lenguaje Java.

Vamos en otras palabras la JVM es un entorno en donde no importa donde realices tu codigo, ni la plataforma donde lo se ejecute ya que la maquina sera capaz de interpretarlo y de ejecutarlo, claro previamente debe de estar instalada dicha maquina virtual.

La instalación la realizaremos desde window$ lamentablemente pero pues desde ahi hay que hacerla tomada desde la pagina oficial de Java

Descargar e instalar

  1. Vaya a Java.com/es.
  2. Haga clic en el vínculo de descargas en la esquina superior derecha de la página de inicio.
  3. Haga clic en el vínculo para consultar todos los archivos de descarga de Java
  4. Haga clic en el vínculo para Windows XP/Vista/2000/2003 fuera de línea.
  5. Aparece el cuadro de diálogo de descarga de archivos.

  6. Elija la ubicación.
  7. (Guarde el archivo en una ubicación conocida de su equipo; por ejemplo, en el escritorio).

  8. Haga clic en Guardar.Aparece el cuadro de diálogo Guardar como.Si ya ha descargado esta versión del JRE, se le indicará:El archivo jre-6u3-rc-windows-i586.exe ya existe. ¿Desea reemplazarlo?
  9. Haga clic en para reemplazarlo.
  10. Compruebe que:
    • El nombre del archivo sea jre-6u3-rc-windows-i586.exe
    • Tenga un tamaño aproximado de 13,8 MB
  11. Cierre todas las aplicaciones, incluido el navegador.
  12. Haga doble clic en el icono del archivo guardado para iniciar el proceso de instalación.

El instalador descomprime los archivos necesarios para la instalación, proceso que tarda menos de un minuto. Después de descomprimir los archivos de instalación, aparece una pantalla de bienvenida y el instalador muestra una opción para ver el contrato de licencia. Tiene la opción de Aceptar el contrato de licencia y continuar con el proceso de instalación

instalacion java

Si no tiene instalados la Barra Google para Internet Explorer y Google Desktop, el instalador proporciona las opciones para instalar estos programas junto a JRE. Seleccione lo que desee instalar activando la casilla de verificación de la barra Google o Google Desktop y, a continuación, haga clic en Siguiente.

instalacion de java

El instalador muestra una pantalla de instalación personalizada que permite elegir las funciones del programa que desea configurar. Se recomienda seleccionar el valor predeterminado, a menos que sea un usuario experimentado y desee tener más control sobre los componentes que se van a instalar

Indicador del estado de la instalación del entorno de ejecución de Java 6.0

Una vez seleccionadas las opciones de programa que desea instalar, haga clic en el botón Siguiente para proseguir con el proceso de instalación. Tras facilitar al instalador toda la información que necesite para proseguir, se abrirá un cuadro de diálogo en el que se mostrará el progreso de la instalación

Leer más

[Manual] Usando PHP y MySQL, Insertando datos de manera dinamica parte 2

Bueno como vimos en el manual anterior de Php y MySQL, realmente no es tan complicado aprender este lenguaje.

ajaxman

Ahora que solo hemos visto como volcar los resultados de una consulta hecha a una base de datos MySQL, sin embargo vamos ha hacerlo mas creativo, ahoro procederemos acrear un formaulario donde nos permitira insertar nuevos registros y tambien otro donde nos permitira borrar los mismos.

Para empezar necesitamos un formulario que nos permita poder introducir datos y enviarlos mediante metodo post, le get no lo usamos por que se pueden enviar menos datos y ademas es mas inseguro.

Entoces hagamos nuestro formulario este archivo se llamara alta.php

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<form method="post" action="alta.php"> <label>Escriba el nombre del alumno</label>
<input name="nombre" type="text" /> <label>Escriba la calificación del primer parcial</label>
<input name="parcial1" type="text" /> <label>Escriba la calificación del segundo parcial</label>
<input name="parcial2" type="text" /> <label>Escriba la calificación del segundo parcial</label>
<input name="parcial3" type="text" /> <input value="Aceptar" type="submit" />

</form>

Una vez llenados los campos le damos click en aceptar y listo se envian los datos al mismo archivo; pero me imagino que se preguntaran por que lo mando al mismo archivo, pues para organizarlo mejor y no tener mil archivos ahora vamos a crear lo que nos permitira insertar datos en nuestra base.

Ahora haremos el script php que guardala la informacion recibida.

Nota importante: hare uso de la funcion var_dump, para verificar que información esta llegando,ya que var_dump revisa el contenido total de cierta variable y los muestra en pantalla.

var_dump($_POST);
/*
* use solo $_POST para que me diga todos los campos y valores que recibio mediante este metodo
* Ahora bajaremos todas las variables recibidas a variables normales esto lo hago para mejorar
* el mantenimiento de dicho script asi como por seguridad, ya que le agregare la funcion addslashes
* la cual escapa comillas simples, dobles y algunos caracteres extranos, evitando que alguien hackee nuestro sitio
*/

$nombre=addslashes($_POST['nombre']);
$parcial1=addslashes($_POST['parcial1']);
$parcial2=addslashes($_POST['parcial2']);
$parcial3=addslashes($_POST['parcial3']);

/*
* Con lo anterior ya podemos usar nuestras variables mas comodamente y mas seguras
* pero recuerden que, no con esto evitaremos ataques, o nuestra web sera 100% Segura
* Sera, mejor dicho un poco mas segura
* Ahora programemos la consulta que insertara los datos, recordemos que en el post anterior,
* ya vimos como hacer una insercion mediante instrucciones SQL
* tomaremos el mismo ejemplo
* el digo era # INSERT INTO `calificaciones` VALUES (1,'Tux',10,8,8,9);
*/

/*
*Nos conectamos a la base de datos
*/

$DB=mysql_connect("localhost","root","localhost");
mysql_select_db("Alumnos");

/*
*creamos una varible que manejara la consulta, es similar al primer ejemplo
* solo que aqui usaremos mas variables
*/

$sql='INSERT INTO `calificaciones` VALUES ("1","Tux",10,8,8,9)';

/*
* Aqui les mencionare un detalle, los valores anteriores se insertaran en los campos, en el orden
* dado, osea que si agregan un campo o reorganizan la base de datos la consulta fallara
* y por logica tambien fallara su a sitio web.
* para evitar eso usaremos set par asignar valores, uno por uno
* asi nos evitamos futuros problemas
*/

$sql='INSERT INTO `calificaciones` set Nombre="Tux", Parcial1=10, Parcial2=8, Parcial3';

/* Listo sin embargo siempre insertara los mismos valores, ha hora reemplazaremos
* los valores por variables y tenemos nuestro sql formado
* para poner valores, los concatenamos con un punto (.) y si el valor es texto, lo ponemos entre comillas
*/

$sql='INSERT INTO `calificaciones` set Nombre="'.$nombre.'", Parcial1='.$parcial1.', Parcial2='.$parcial2.', Parcial3='.$parcial3;

/*
* Ahora ejecutamos la consulta
*/

$Q=mysql_query($sql,$DB);

/*
* Y listo ya insertamos los datos en nuestra base, sin embargo
* es mejor estar seguro de que se insertaron los datos con exito.
* por ello usando el operador if, preguntaremos si se inserto con exito
* si hay exito mostraremos un texto y si no mandaremos un mensaje de error
*/

if($Q)
{
echo ' El registro se agrego correctamente';
}
else
{
echo 'Ups!! hubo errores con el registro, trata de revisar tu script';
}

/*
* Mucho mejor no
*
*/

Listo ahora metemos todo a un solo archivo y lo presentamos

Archivo alta.php

Leer más

[Manual] Usando PHP y MySQL,para manejar una base de datos parte 1

Varios lectores me han pedido que si no hacia un manual de php, sin embargo como ha veces no tengo mucho tiempo, pues prefiero no poner mas manuales por que de por si, con los de Javascript, y Xul, ando algo atrasado.

Sin embargo como me gusta compartir, pues aqui les pongo un manual con lo necesario para poder conectarnos con php, a una base da datos MySQL y formatear los resultados a nuestro gusto, bueno empecemos.

Primero que nada, necesitamos haber instalado y configurado Apache, Php y MySQL, si no saben como hacerlo, pueden checarlo en este post.

Manual de instalacion y configuracion de apache con windows

Ahora veamos el problema

Necesitamos llevar un control de 20 alumnos de la escuela “Ajax-SQL”, este control sera llevado a cabo por el maestro el cual nos ha pedido, que elaboremos un sistema que nos permita dar de alta a los alumnos asi como sus calificaciones mediante una intranet o una pagina web donde los administradores, en este caso los maestros, puedan dar sus datos y accesar a una zona privada donde podran hacer los cambios que deseen.

Para empezar primero necesitamos saber lo mas basico, he ir armando parte por parte, asi que empezaremos por la creacion de la base de datos y el volcado de los mismos.

Como ya tenemos instalado todo lo que vamos a ocupar, vamos a empezar por crear la base de datos, a la cual llamaremos “Alumnos”, esto lo podemos hacer mediante un SQL, ya se por linea de comandos o mediante una interfaz grafica, por facilidad y disponibilidad de herramientas les recomiendo usar una GUI.

En mi caso en el trabajo cuando uso Windows uso, MySQL Front, software el cual esta descontinuado, sin embargo todavia pueden conseguir este software en la web, y se lo recomiendo por que simplemente era y es el mejor para manipular bases de datos desde Windows si usan linux pues el Mysql Administrator el cual lo pueden obtener gratuitamente desde el sitio de MySQL AB.

Entonces creamos la base de datos y le agregamos una tabla llamada “Calificaciones”, con 6 campos, que son

  • ID_Alumno
  • Nombre
  • Parcial1
  • Parcial2
  • Parcial3
  • Promedio

Sin embargo se que muchos tendran dudas, ¿Como creo la base de datos, como agrego la tabla, si no tengo GUI, etc?

Bueno las mismas instrucciones pero ahora con codigo SQL

Creamos la base de datos

create database “Alumnos”;

Seleccionamos la base de datos
use Alumnos;

Creamos la tabla

CREATE TABLE `calificaciones` (
  `ID_Alumno` int(11) NOT NULL auto_increment,
  `Nombre` varchar(40) default NULL,
  `Parcial1` int(11) default NULL,
  `Parcial2` int(11) default NULL,
  `Parcial3` int(11) default NULL,
  `Promedio` int(11) default NULL,
  PRIMARY KEY  (`ID_Alumno`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

Con lo anterior hemos creado una tabla con 5 campos, el primero es la clave primaria, osea que no se repetira nunca en la tabla, ademas es auto-incrementable, ademas no puede ser nulo; el siguiente camo llamado nombre, es de tipo varchar lo que significa que contendra unicamente texto y tendra la capacidad que le indiquemos en este caso 40 caracteres, los otros son campos enteros.

Ahora procederemos a llenar la base datos usando sql:


INSERT INTO `calificaciones` VALUES (1,'Tux',10,8,8,9);
INSERT INTO `calificaciones` VALUES (2,'Ajaxman',7,5,9,7);
INSERT INTO `calificaciones` VALUES (3,'Javier',8,9,10,9);
INSERT INTO `calificaciones` VALUES (4,'Debian',10,10,10,30);

Nota como tenia sueño solo agregue 5 pero haganlo con mas datos (20) para ver mas a detalle como funciona
Una vez, hecho este tenemos los datos suficientes para empezar a trabajar

Creamos nuestro archivo php, haciendo una conexion a la base de datos

Archivo Consulta.php

Leer más

[LPIC] Dispocision de los archivos en GNU/Linux -I

Continuando con la enseñanza de GNU/Linux, que por cierto mi Debian me esta dando varios dolores de cabeza, por que ahora no puedo acceder al explorador de archivos pero bueno, es cualquier cosa.

En GNU/Linux, sin importar el tipo de distribucion que se trate, siempre tendra una estructura practicamente igual de algunos directorios, estos directorios seran los siguientes.

Directorio / (slash)

Este es el directorio raiz, de donde parten los siguientes directorios, cuando se especifiquen rutas absolutas, estas deberan expesar de este directorio.

Directorio /bin
Este directorio de contiene los ejecutables, los cuales son fundamentales para el funcionamiento de Linux, la mayoria de los comandos usados en linux como, rm, cp, tar, etc,

Todos los archivos ejecutables o binarios que se encuentran en este directorio son accesibles a todos los usuarios, debemos tambien recordar que los archivos que no son fundamentales para el funcionamiento del sistema estan en el directorio /usr/bin en lugar de /bin.

Leer más

Historico de entradas

febrero 2012
L M X J V S D
« ene    
 12345
6789101112
13141516171819
20212223242526
272829  

Ajaxman

Mi nombre es Javier, soy desarrollador web con especialización en PHP (avanzado), HTML, CSS y Javascript(Medio).

Me considero evangelizador de Kohana Framework, Mozilla Firefox y GNU/Linux Debian.

Estoy casado, y tengo dos hermosos hijos.

Todos los contenidos a menos que se exprese lo contrario estan bajo licencia Creative Commons.

Enlazanos!!

hit counters online counter