Академический Документы
Профессиональный Документы
Культура Документы
PHP, Talleres, programa php, taller php, curso php, tutorial php Bienvenidos al taller de PHP! En este curso aprenders a generar pginas dinmicas del lado del servidor. Tambin a integrarlas con MySql, por ejemplo. El objetivo principal es que aprendas los conceptos bsicos para poder desarrollar sitios y aplicaciones web dinmicas. Al final del taller podrs crear tu propio blog (cdigo de programacin).
Clase 1: Introduccin o Qu es PHP? o Nuestro primer Script: Generando un Hola Mundo o Que son las variables? Clase 2: Variables y constantes o Reconocimiento de Variables o Tipos de Variables o Qu son las constantes? o Diferencias entre Variables y Constantes Clase 3: Condicionales (Parte I) o Qu son los condicionales? o Diferentes tipos o Casos de uso Clase 4: Condicionales (Parte II) o Qu son los operadores? o Los 4 tipos de operadores Clase 5: Bucles (Parte I) o Qu son los bucles? o Diferentes tipos o while o do while Clase 6: Bucles (Parte II) o for o foreach Clase 7: Envo de datos de un formulario o Cmo armar un formulario para que sea procesado por Php? o Diferentes formas de enviar un formulario o Variables POST y GET Clase 8: Procesar un formulario (Parte I) o Cmo procesar un formulario? o Diferentes tipos de campos? o Inputs Clase 9: Procesar un formulario (Parte II) o Textarea Clase 10: Procesar un formulario (Parte III) o Selectbox Clase 11: Procesar un formulario (Parte IV)
Recibiendo los datos contacto_script.php Cuerpo del mensaje Funcin mail Script completo Clase 12: Funciones o Qu son las funciones? o Para qu sirven? o Casos de uso Clase 13: Sesiones y cookies o Qu son las sesiones? o Qu son las cookies? o Diferentes formas de utilizarlas Clase 14: Base de datos o Trabajar con Base de datos o Importancia de las mismas en pginas dinmicas o Diferentes tipos de base de datos Clase 15: MySql o Introduccin a MySql o Ventajas y desventajas o Conectarse con la base de datos desde Php Clase 16: MySql phpMyAdmin o Qu es phpMyAdmin? o Por qu usarlo? o Qu otras alternativas existen? Clase 17: MySql Creacin de tablas o Cmo crear una tabla? o Diferentes tipos de campos o Qu son los ndices? Clase 18: MySql Consultas o Diferentes tipos de consultas o Ordenar nuestras consultas o Filtrar las consultas Clase 19: MySql Insertar datos en la base de datos o Cmo insertar nuevos registros en la base de datos? o Casos de uso Clase 20: MySql - Actualizar y borrar registros (1) o Actualizando datos ya guardados y Borrando registros Clase 21: MySql - Actualizar y borrar registros (2) Clase 22: MySql Consultas complejas o Utilizacin de JOINS en las consultas a la base de datos Clase 23: MySql Consultas ms usadas o Obtener cuentas, valores mximos y mnimos directamente de la base de datos o Limitar las consultas Clase 24: Clase destinada a dudas y consultas Clase 25: Respuestas a las preguntas de la clase anterior Clase 26: Manipulacin de archivos (1) o Crear archivos nuevos, escribirlos, borrarlos Clase 27: Manipulacin de archivos (2)
o o o o o
Clase 28: Moviendo archivos o Cmo subir archivos al servidor? o Casos de uso Clase 29: Manipulacin de imgenes o Creacin de imgenes dinmicas y thumbnails Clase 30: Funciones ms tiles predeterminadas de PHP o Modificadores de fechas o Manipulacin de arreglos (arrays) o Pasar una cadena de texto a minsculas, a maysculas. Clase 31: Expresiones regulares o Qu son las expresiones regulares? o Cundo utilizarlas? o Funciones de php para expresiones regulares Clase 32: Expresiones regulares Clase 33: Creando nuestro propio blog (sistema de administracin de contenido) Introduccin o Introduccin al sistema, explicando los diferentes niveles de accesos y permisos de usuarios o Diferentes caractersticas del contenido o Qu es el FrontEnd? Qu es el BackEnd? Clase 34: Nuestro blog Creacin de la base de datos o Creacion de la base de datos o Por qu de esta forma? Clase 35: Nuestro blog Registro de usuario o Creacin de nuestro sistema de registro Clase 36: Nuestro blog Ingreso y reconocimiento de usuarios o Formulario de ingreso o Uso de sesiones para reconocer usuarios online o Diferentes niveles de acceso Clase 37: Nuestro blog Sistema de noticias Parte 1 o Categoras dentro de nuestro blog o Cmo crear nuevas categoras? Clase 38: Nuestro blog Sistema de noticias Parte 2 o Modificar y borrar categoras ya existentes Clase 39: Nuestro blog Sistema de noticias Parte 3 o Sistema de alta de noticias en nuestro blog (BackEnd) o Mostrando las noticias en el blog (FrontEnd) Clase 40: Nuestro blog Sistema de noticias Parte 4 o Modificaciones en las noticias o Borrado de noticias Clase 41: Nuestro blog Sistema de comentarios Parte 1 o Alta de comentarios por parte de los usuarios registrados Clase 42: Nuestro blog Sistema de comentarios Parte 2 o Aprobar o borrar comentarios realizados por los usuarios (solo los administradores) Clase 43: Conclusin o Palabras finales del curso
Podrn seguir las clases todos los lunes del 28 de enero al 3 de noviembre (43 clases). La primera clase ya fue publicada, haz clic aqu para visualizarla.
Dentro de un archivo PHP se puede alternar entre cdigo html y cdigo PHP. Esto nos permite realizar pginas dinmicas de forma fcil: realizando toda la estructura con html y luego agregando el contenido dinmico. Imaginemos una pgina html comn, pero en lugar de ser index.html es index.php. Cuando se quiera agregar cdigo PHP habr que hacerlo dentro de las etiquetas <?php y ?> o <? y ?>, por ejemplo:
<html> <head> <title>hola mundo</title> </head> <body> <h1>incluir cdigo PHP en html</h1> <p><? ac va el cdigo PHP ?></p> </body> </html>
Variables
Las variables son elementos que creamos para asignarles un valor o dato especfico (que puede cambiar a lo largo de nuestro archivo). En PHP, las variables se definen anteponiendo el signo $, por ejemplo:
En el cdigo anterior definimos la variable hola la cual contiene la informacin hola mundo. Noten que al final agregu un punto y coma (;). En PHP, siempre que se termine una instruccin hay que aclararlo de esta forma.
Tip
Lo ideal a la hora de programar es definir todas las variables y realizar las operaciones antes del cdigo html y en ese cdigo mostrar los resultados de nuestras variables. Por ejemplo, un cdigo completo de hola mundo sera:
<? $hola = "hola mundo"; ?> <html> <head> <title><? echo $hola; ?></title> </head> <body> <h1>incluir cdigo PHP en html</h1> <p><? echo $hola; ?></p> </body> </html>
La funcion echo lo que hace es imprimir una o ms cadenas de texto. En nuestro ejemplo anterior, como la variable contena una cadena de texto (string), lo que el navegador hubiera mostrado es:
<html> <head> <title>hola mundo</title> </head> <body> <h1>incluir cdigo PHP en html</h1> <p>hola mundo</p> </body> </html>
En los prximos artculos de este taller ya profundizaremos en el uso de este potente lenguaje. Ver tambin: XAMPP, servidor web fcil de instalar
Reconocimiento de Variables
Reconociendo variables
Como expliqu en la clase anterior las variables anteponen el smbolo $, es decir $variable, $queEsEsto, $no_se, son tres variables que se le pone el nombre que uno quiere.
Si escribimos todo eso en nuestro cdigo php, el valor final que va a tener la variable $miVariable va a ser true, todo el resto de la informacin asignada se pierde.
Tipo de variables
Existen dos tipos de variables en php, locales y globales, locales son aquellas que se ejecutan en un nico mbito, es decir si yo defino una variable $local y a continuacin uso una funcin que adentro contiene una variable llamada $local, van a ser consideradas como dos variables diferentes y no va a pasar lo que pasa en el ejemplo anterior que la informacin asignada prioritariamente a la variable $local se pierde. Para crear una variable global que s puede ser accedida desde todos los mbitos de nuestro script se debe aclarar, caso contrario es local.
<? global $miGlobal = esta es una variable global; ?>
De esa forma hemos definido la constante HOLA (por convencin se utilizan nombres en mayscula para las constantes aunque no es obligatorio). Las constantes son ms livianas que las variables en el uso de memoria del servidor y no pueden ser reescritas, es decir, si en nuestro script tenemos lo siguiente:
<? define(HOLA, Hola mundo); define(HOLA, Chau mundo); ?>
Nuestro script de php va a interpretar la constante HOLA con la primer informacin definida en ella, es decir Hola mundo y en el reporte de errores del servidor va a agregar el error de que se intento definir nuevamente la constante HOLA. Otra ventaja que tienen las constantes es que son GLOBALES, es decir se pueden acceder desde cualquier mbito, dentro de una funcin, una clase, etc. Por ltimo, para usar una constante la usamos directamente por el nombre que definimos en el primer trmino, volviendo al ejemplo de Hola mundo de nuestra primer clase, usando la constante sera de la siguiente forma:
<? define('HOLA', 'Hola mundo'); ?> <html> <head> <title><? echo HOLA; ?></title> </head> <body> <h1>incluir cdigo PHP en html</h1> <p><? echo HOLA; ?></p> </body> </html>
de hacer pginas dinmicas. Con ellos decidimos qu tipo de accin realizar y son parte de la llamada estructura de control.
Casos de uso
if, else y elseif
La estructura if se utiliza para ejecutar una accion segn una determinada condicin. Por ejemplo:
<? if ( $fecha == 04.02.2008 ) { echo Hoy es 4 de Febrero de 2008; } ?>
Por otro lado est muy relacionada con el else, que sirve para continuar con el proceso si no se cumple la condicin. Atencin! No es obligatorio que figure.
<? if ( $usuario != false ) { echo "Bienvenido de nuevo $usuario"; } else { echo Hola, si an no estas registrado puedes hacerlo ; } ?>
Si usamos el else se mostrar o la primer accin o la segunda. Por el contrario, si usamos solo el if, en pantalla se mostrara el bloque de accin si se cumple la condicion y seguir corriendo el script mostrando lo que viene a continuacion por fuera de los { }. Por ltimo, tenemos el elseif que nos permite usar varias condiciones hasta que se cumpla una. Por ejemplo:
<? if ( $hoy == Lunes ) { echo Hoy es Lunes, tenemos carne para almorzar; } elseif ( $hoy == Martes ) { echo Hoy es Martes, tenemos fideos para almorzar; } elseif ( $hoy == 'Miercoles' ) { echo Hoy es Miercoles, tenemos estofado para almorzar'; } elseif ( $hoy == 'Jueves' ) { echo Hoy es Jueves, tenemos pizza para almorzar'; } elseif ( $hoy == 'Viernes'{ echo Hoy es Viernes, tenemos tarta para almorzar; } elseif ( $hoy == 'Sabado'{
echo Hoy es Sabado, tenemos ravioles para almorzar; } else ( $hoy == 'Domingo'{ echo Hoy es Domingo, no almorzamos :(; } ?>
El script va a correr hasta que se cumpla la condicin y entrar nicamente en esa sentencia.
Switch
La estructura switch es una forma paralela a la usada en el ltimo caso. Se forma de la siguiente manera:
<? switch($hoy) { case Lunes: echo Hoy es Lunes, tenemos carne para almorzar; break; case Martes: echo Hoy es Martes, tenemos fideos para almorzar'; break; case Miercoles: echo Hoy es Miercoles, tenemos estofado para almorzar'; break; case Jueves: echo Hoy es Jueves, tenemos pizza para almorzar'; break; case Viernes: echo Hoy es Viernes, tenemos tarta para almorzar'; break; case Sabado: echo Hoy es Sabado, tenemos ravioles para almorzar'; break; case default: echo Hoy es Domingo, no almorzamos '; break; }?>
Una de las grandes ventajas de PHP es que se puede entrelazar con HTML. Un claro ejemplo de lo aprendido en esta clase, es cmo decidir qu mostrar y qu no en nuestro HTML con un condicional de PHP. En el caso siguiente mostrar el formulario para dejar comentarios de elWebmaster, dependiendo si estamos registrados o no en nuestro sitio.
A lo largo de esta clase veremos qu son los operadores. Adems aprenderemos sobre operadores aritmticos, de asignacin, de comparacin y operadores lgicos, descubriendo cmo nos ayudar cada uno en nuestros proyectos.
Operadores de asignacin
= asigna al primer miembro el segundo. Es decir $a = 4, le asigna el valor 4 a $a. +=
asigna al primer miembro la suma del primer miembro con el segundo. $a =4; $b = 5; $b += $a, ahora $b pasa a valer 9.
-= asigna al primer miembro la resta del primer miembro con el segundo. *= asigna al primer miembro la multiplicacion del primer miembro con el segundo. /= asigna al primer miembro la division del primer miembro con el segundo. %= asigna al primer miembro el resto de la division del primer miembro dividido el segundo. .=
concatena el primer miembro con el segundo y se lo asigna al primero. Es decir $a = Hola ; $b = Mundo. $a .= $b; ahora $a = Hola Mundo;
Operadores de comparacin
Este tipo de operadores se van a utilizar mucho en los condicionales, junto con los operadores lgicos son los que le van a dar la complejidad a nuestro script.
==
comprueba si dos valores son iguales, por ejemplo if ($a == $b) si $b es igual $a, el condicional devuelve TRUE y continua ejecutando el script.
comprueba si el valor del primer miembro es mayor al segundo, por ejemplo if ( $a > 5), va a devolver TRUE para todos aquellos valores de $a mayor a 5. comprueba si el valor del primer miembro es menor al segundo.
<
>= comprueba si el valor del primer miembro es mayor o igual al segundo. <= comprueba si el valor del primer miembro es menor o igual al segundo.
Operadores lgicos operacion de negativa, por ejemplo dentro de un condicional se puede realizar todo tipo de operaciones y funciones, una que veremos mas adelante es una funcion propia de php que devuelve TRUE o FALSE dependiendo si la variable esta vacia, entonces si nosotros preguntamos if (!empty($a)) va a devolver si $a = 5, TRUE, ya que empty($a) devuelve FALSE, pero !empty($a) seria como preguntar Si $a NO esta vacia. comparador Y. Dentro de un condicional es necesario que ambas condiciones se cumplan es decir if ( $a == 4 AND $b == 5 ) continua con el script.
and
comparador O. Dentro de un condicional es necesario que se cumpla una de las dos or condicione, es decir if ( $a == 4 OR $b == 5 ) con que $a = 4 o $b = 5 el script va a continuar su ejecucion.
xor
va a devolver verdadero si al menos una de las dos condiciones es verdadera pero no ambas.
imagen, mostrar el autor, lo nico que cambia es el contenido, pero la tarea que realiza es siempre la misma. Una forma fcil de realizar una secuencia de instrucciones en forma repetitiva es utilizando los BUCLES.
En PHP existen cuatro tipos de bucles: while, do while, for y foreach.
while
El while es un bucle que va a realizar una instruccin o conjunto de instrucciones siempre y cuando la condicin ( lo vimos en la Clase 4 - Condicionales - ParteII ) se cumpla, es decir sea verdadera. La comprobacin de la condicin la hace siempre al principio. La estructura es la siguiente:
<code> <? while ( condicion ) { instrucciones } ?> </code>
Explicando un poco la sintaxis del while, lo que va entre ( ) es la condicin, puede ser de cualquier tipo, ver si existe una variable, si una variable es menor a otra, si una variable es verdadera, etc. Y entre { } va la instruccin o instrucciones. Un ejemplo sencillo de este bucle puede ser mostrar una cuenta de 1 hasta 10.
<code> <? $c = 1; while ( $c < 11) { echo $c <br>; $c++; } ?> </code>
En la primer lnea definimos la variable $c con el valor 1, luego evaluamos la condicin si $c es menor a 11, como es 1, se ejecutan las instrucciones. En la primer linea de la instruccin mostramos en pantalla el valor de $c, en este caso 1, y luego en la segunda linea de instrucciones le sumamos uno a $c ( con $c++ se le suma un valor a la variable, es lo mismo a poner $c = $c + 1; ), Al final de las instrucciones, el bucle vuelve a analizar la condicin, en este caso $c es igual a 2, (recordar que le acabamos de sumar 1), sigue siendo verdadera la condicin de que $c < 11, por lo que el bucle va a continuar con este proceso hasta que $c sea igual a 11.
do while
Este bucle no difiere mucho del anterior:
<code> <? do { intrucciones } while ( condicion) ?> </code>
La nica diferencia salvando la sintaxis es que primero ejecuta la instruccin y luego se fija si cumple la condicin, en caso de ser verdadera la condicin, vuelve a ejecutar una vez mas y as. La clase que viene vamos a ver los dos bucles que nos estn restando for y foreach
for
El bucle for tiene la siguiente sintaxis:
<? for( expresion 1; expresion 2; expresion 3 ) { instrucciones } ?>
La expresin 1 se ejecuta una vez al comienzo del bucle, la expresin 2 es la condicin que se debe cumplir y la expresin 3 se ejecuta al final de ejecutar las instrucciones en cada iteracin. Siguiendo el mismo ejemplo de la clase anterior, en la que vimos el bucle while, ahora vamos a usar el mismo, mostrar la secuencia de nmeros del 1 al 10 pero con un for.
<? for ($c = 1; $c < 11; $c++) { echo $c <br />; } ?>
Al igual que como hicimos en el ejemplo del while, aqu seteamos $c = 1 (expresin 1 que se ejecuta por nica vez antes de comenzar el bucle), $c < 11 es la expresin 2, o sea la condicin que queremos que se cumpla, y $c++ es la accin que se va a realizar al finalizar la iteracin, igual que el while donde le ponamos el $c++ dentro de las instrucciones. Para bucles for se puede utilizar tambin una sintaxis alternativa.
<? for ( expresion 1; expresion 2; expresion 3 ): instrucciones endfor; ?>
foreach
Este bucle es una forma rpida y sencilla de recorrer un arreglo o una matriz. En la clase 2 vimos que una variable poda contener un arreglo (array). Qu quiere decir esto? que a una variable se le puede asignar un conjunto de elementos, por ejemplo la variable $semana puede contener un arreglo con los das de la semana, para esto la definimos as:
<? $semana = array( lunes,'martes,'mircoles,jueves,'viernes,sbado,'domingo ); ?>
La sintaxis del foreach que nos va a permitir recorrer los array es la siguiente:
<? foreach ( expresion1 as expresion2 ) { instruccion } ?>
En expresion1 ponemos nuestro array y en expresion2 definimos cmo queremos que se llame el valor de cada elemento de nuestro array, en instrucciones lo que queremos hacer cada iteracin. Siguiendo nuestro ejemplo de la semana, el bucle va a recorrerse 7 veces, ya que tenemos 7 das, si lo que queremos es mostrar un listado de los das que tenemos en nuestro array debemos hacer lo siguiente:
<? // definimos el arreglo con los das de la semana $semana = array( lunes,'martes,'mircoles,jueves,'viernes,sbado,'domingo );
// comienza el bucle
foreach ( $semana as $dia ) { echo $dia <br />; } ?>
De esta forma la variable $dia se va reemplazando con el siguiente valor que le corresponde en el array por cada iteracin que realiza el foreach Si todava no se perdieron, vamos a ver la forma de utilizar el foreach para recorrer un arreglo que tiene definido ndices, en el ejemplo anterior vimos un array el cual no tena definido ningn ndice, ahora vamos a ver un array un poco ms complejo:
<? $noticia = array( titulo => Php Clase 5 - Bucles, cuerpo => Ac va el contenido de la clase 5 de php, mucho texto, mucho mucho, autor => Justi ); ?>
Ahora que ya tenemos nuestro array ms complejo, vamos a ver el foreach sin mostrar ndices y mostrndolos
<? foreach ( $noticia as $valor ) { echo $valor<br />; } ?>
obtenemos en pantalla
titulo: Php Clase 5 - Bucles cuerpo: Ac va el contenido de la clase 5 de php, mucho texto, mucho mucho autor: Justi
Tip
Lo bueno de usar esta ltima expresin es que se puede manipular que mostrar en pantalla dependiendo del ndice, supongamos que queremos imprimir nuestra noticia pero queremos que los ttulos tengan un <h1> el cuerpo aparezca en un <p> y el autor en un <span> usando los condicionales hacemos lo siguiente:
<? foreach ( $noticia as $indice => $valor ) { if ( $indice == titulo ) { echo <h1>$valor</h1>; } if ( $indice == cuerpo ) {echo <p>$valor</p>; } if ( $indice == autor ) {echo <span>$valor</span>; } } ?>
Y que tal? Ya va tomando un poco ms de sentido todo lo que venimos leyendo, no? Nos vemos la clase que viene.
Vamos a explicar un poquito que es cada atributo y para qu sirve: action: aqu es donde vamos a hacer que se enven todos los datos, el archivo contacto_script.php va a procesar toda la informacin enviada y decidir cmo continuar, si hubo un error, si fue correcto, etc.
method: le especificamos cmo queremos que se enve la informacin, a travs del mtodo POST o del mtodo GET. Yo se lo que te ests preguntando ahora, qu diferencia hay entre cada mtodo No? El temita es el siguiente, no tiene sentido que yo te escriba un prrafo de 1000 palabras con las diferencias tcnicas que existen entre un mtodo y el otro para el protocolo HTTP por lo que te lo voy a explicar crudamente para que sepas cundo emplear cada mtodo: Basicamente se enva informacin a travs del mtodo POST cuando se desea que ese envo de informacin sea oculto, o si se est enviando mucha informacin. Por lo general la pgina que recibe esa informacin no va a ser re-cargada, ya que si hacemos refresh en una pgina que acaba de recibir informacin va POST el navegador nos avisar con un cartelito que estamos intentando recargar una pgina y que se va a enviar toda la informacin de nuevo, por un lado es molesto y por otro puede que el navegador no haya guardado correctamente toda la informacin enviada originalmente y falle. El metodo GET, por el contrario, cuando completamos un formulario que enva los datos atraves de GET, esta informacin nos va a aparecer en la URL del sitio, si se fijan, cuando realizan una bsqueda en Google, esta se hace a travs de un formulario con mtodo GET, ya que en la URL nos aparece toda la informacin que nosotros buscamos ms otras variables. Ahora bien Cundo es aconsejable usar uno u otro mtodo? Pues como dije justo en el prrafo anterior, cuando se realiza un formulario de bsqueda, o un formulario para filtrar la informacin mostrada o cambiar el orden de la informacin mostrada (En un listado de departamentos en alquiler, cambiar el orden por mejor precio, por nmero de ambientes, etc.) es aconsejable usar el metodo GET, ya que el usuario es muy probable que entre en una pgina y luego vuelva para atrs, en esta vuelta para atras, esta haciendo refresh de la pagina con los resultados de busqueda, si hubiese sido por POST, el navegador hubiese mandado la alerta de que se esta intentando entrar en una pgina que recibio informacion via POST y podra no mostrar la informacion correctamente. Por el contrario, es aconsejable utilizar el mtodo POST cuando se desea enviar mucha informacin, o es informacin que no va a cambiar por decisin del usuario, es decir, no es un filtro, sino un formulario de contacto, para escribir una nueva entrada en nuestro blog, crear un tema en un foro, etc. id: lo usuamos para identificar el formulario, ya que podemos llegar a tener muchos formularios en una misma pgina y queremos que se identifique bien cada formulario. Aqui elegimos el nombre que queremos. Listo, ya sabemos como configurar nuestro formulario, la clase que viene vamos a ver que diferentes tipos de campos existen y como vamos a procesar esta informacin con PHP.
PHP, Talleres, taller php, curso php, tutorial php, formulario php, php clase 8 Hola, bienvenidos a la octava clase del Taller de PHP! Esta clase estar dividida en dos partes, por una cuestin de prolijidad. En esta primera parte vamos a ver algunos tipos de campos que podemos tener en el formulario. Los diferentes campos que podemos tener en un formulario son inputs, selectbox y textarea. A su vez los inputs se dividen en de tipo texto, radio, checkbox, password, hidden, button, submit, reset. Son un montn, as que veamos uno por uno.
Inputs
El ms comn de todos es el de tipo text. Este sirve para completar una sola linea de texto y tiene que tener las siguientes propiedades.
<label for=input_campo>Nombre Campo</label> <input id=input_campo type=text name=nombreCampo value=" />
Bueno, ustedes seguramente ven lo de arriba y se estarn diciendo: Un momento, cerebrito! Por lo que intentare explicar qu es cada cosa. Primero van a ver una etiqueta label que no la nombr antes. Esta etiqueta no es obligatoria incluirla, pero es lo correcto, con la misma le van a poder indicar un nombre al campo para que todo el mundo sepa lo que est completando. En el for tienen que incluir la id del campo y esto me da pie para explicar esta ltima. La id del input es un identificador nico, no puede haber ningn otro elemento con este nombre en toda la pgina. El nombre es a gusto de ustedes, pero por convencin se utilizan nombres relacionados con el elemento que estn identificando. Consejo: a la hora de crear una id es muy til, por experiencia propia, ponerle primero el tipo de elemento html que es y luego que representa, si se fijan yo eleg input_campo, ya que es un input y como us un nombre genrico le puse campo, pero ah podra ser input_direccion, input_telefono, input_email. Esto les va a resultar til a la hora de armar un CSS o realizar acciones con Javascript. Van a poder identificar el elemento muy fcilmente. Con type le indicamos el tipo de input que es, en este caso es un texto, name es obligatorio y lo utilizaremos para levantar la variable POST y value es el contenido del campo, si lo dejamos con las dos comillas y sin contenido por defecto no nos va a aparecer nada en el campo, sino podemos completarlo con alguna frase del estilo para que nos aparezca adentro del campo.
<label for=input_contacto>Nombre Campo</label> <input id=input_contacto type=text name=nombreContacto value=Complete con sus nombres y apellidos />
Bueno, los inputs de tipo text los utilizamos para casos en que el usuario debe completar un solo regln. Como completar con sus nombres y apellidos, direccin, telfono, email, etc. Tambin tenemos los inputs de tipo Radio, cuya sintaxis es la siguiente:
<label for=input_si>Si</label><input id=input_si type=radio name=suscribirse value=si /> <label for=input_no>No</label><input id=input_no type=radio name=suscribirse value=no />
Qu tenemos ac? Fjense que name es el mismo para ambos inputs, lo que cambia es el value (y la id obvio, no se puede repetir id en toda la pagina). Este tipo de campos es autoexcluyente, slo se puede marcar una opcin, y por php se recibir nicamente el valor que fue marcado. El mismo se ve de la siguiente manera:
Otro caso similar es el tipo Checkbox, los clsicos cuadraditos que se utilizan para tildar y destildar, es muy comn ver este tipo de inputs antes de registrarnos en algn lugar y que nos pregunten si estamos de acuerdo con los trminos y condiciones. La sintaxis es la siguiente:
<input id=input_acuerdo type=checkbox name=acuerdoLegal value=1 />
En caso de que NO este marcado por el usuario al momento de hacer un submit del formulario, este campo no se enva y al procesarlo por Php, veremos que no existe la variable POST correspondiente a este campo. Otro tipo de input es Password, esta propiedad hace que el campo en lugar de ver el texto que se escribe en l, aparezcan los clsicos redondelitos negros ocultando la informacin.
<input id=input_password type=password name=password value=" />
Luego tenemos el tipo Hidden, que es un campo oculto, en el podemos poner informacin pre-definida que el usuario no tiene que completar, entonces no se muestra pero si se enva.
<input type=hidden name=idUsuario value=25 />
Por ltimo vamos a ver el tipo Submit que es el campo que va a enviar nuestro formulario
<input type=submit name=submit value=Enviar consulta />
Textarea
Los textarea funcionan muy similar a un campo input de tipo text con la particularidad de que se pueden agregar saltos de linea, es decir escribir bloque de textos completos con diferentes prrafos. La sintaxis es la siguiente:
<textarea id="textarea_comunicacion" name="comunicacion" rows="10" cols="50"></textarea>
La id es exactamente igual que en los casos anteriores, con name vamos a definir el nombre de la variable que vamos a levantar con PHP via POST, rows es el nmero de filas que queremos que tenga nuestro campo y cols es el ancho.
Entre los tags <textarea> y </textarea> se puede incluir un texto para que aparezca por defecto, por ejemplo:
<textarea id="textarea_comunicacion" name="comunicacion" rows="5" cols="50">Escribe aqu lo que quieras</textarea>
La clase que viene aprenderemos sobre SelecBox, con lo cual terminaremos de ver el formulario del lado del front end. Los espero!
SelectBox
La sintaxis del que permite seleccionar slo uno es la siguiente:
<select id="select_sexo" name="sexo"> <option value=M>Masculino</option> <option value=F>Femenino</option> </select>
Nuevamente, el id y el name es lo mismo que los casos anteriores y ac se agrega una nueva etiqueta option que es cada opcin que queremos que aparezca en el formulario. Lo que esta entre las etiquetas <option> y </option> es lo que va a ver el usuario, pero PHP va a obtener la informacin que figura en el atributo value. Y nicamente de la opcin seleccionada. Para hacerlo mltiple, hay que agregarle una propiedad extra a la etiqueta select.
<select id="select_gustos" <option value=1>Me gusta <option value=2>Me gusta <option value="3">Me gusta </select> name="gustos" multiple="multiple"> jugar al Tennis</option> jugar al Futbol</option> jugar al Correr</option>
Para poder seleccionar mltiples opciones hay que dejar apretada la tecla Ctrl. Ya terminamos con todo lo que tiene que ver con el formulario del lado del front end, ahora slo nos resta ver el back end que es donde acta todo el proceso de PHP.
<form action="contacto_script.php" method="post" id="contacto"> <label for=input_nombres>Nombre y Apellido</label><br /> <input id=input_nombres type=text name=nombres value=" /><br /><br /> <label for=input_email>Email</label><br /> <input id=input_email type=text name=email value=" /><br /><br /> <label for=input_sexo>Sexo</label><br /> <select id=select_sexo name=sexo> <option value=M>Masculino</option> <option value=F>Femenino</option> </select><br /><br /> <label for=textarea_mensaje>Mensaje</label><br /> <textarea id=textarea_mensaje name=mensaje rows=5 cols=50></textarea><br /><br /> <input type=submit name=submit value=Enviar consulta /> </form>
Este formulario ser enviado al archivo contacto_script.php por el mtodo post. Ahora la pregunta del milln es qu contiene el archivo contacto_script.php.
contacto_script.php
Este archivo va a interpretar los datos enviados a travs del formulario. Para ello lo que vamos a hacer es primero ver si llegaron todos los parmetros y agregarlos cada uno a una variable.
<? // definimos las variables o marcamos el error if ( !empty($_POST['nombres']) ) $nombres = $_POST['nombres']; else $error = true; if ( !empty($_POST['email']) ) $email = $_POST['email']; else $error = true; if ( !empty($_POST['sexo']) ) $sexo = $_POST['sexo']; else $error = true; if ( !empty($_POST['mensaje']) ) $mensaje = $_POST['mensaje']; else $error = true; ?>
Lo primero que hacemos es preguntar si NO est vaco el parmetro enviado por post, ya que la funcin empty pregunta si esta vaco (va a responder si el contenido es un string vacio, un cero o un false) pero como le anteponemos el ! estamos preguntando por lo contrario. En caso de que nuestra condicin se cumpla, asignamos a una variable el parmetro recibido, caso contrario definimos una variable llamada error con contenido TRUE. Esta ltima nos va a servir para hacer que todos los campos del formulario sean obligatorios a la hora de enviarse.
Perfecto, ya tenemos definidas nuestras variables ahora vamos a verificar que no exista la variable error, y si existe redireccionamos a una pgina con el mensaje de error.
// verificamos que no exista un error if ( !empty($error) ) { header( Location: contacto_error.php ); die; }
Lo mismo que antes, preguntamos si no est vaco error, si la respuesta a esta pregunta es verdadera, tenemos un problema, uno de los campos del formulario no fue completado, por lo que el script de php lo vamos a frenar y vamos a redireccionar al usuario a una pgina que contenga el mensaje de error, esta pgina va a ser en este caso contacto_error.php. La redireccin la hacemos por medio de la funcin header( Location: ) que va a hacer que recargue la nueva pgina que le estamos pasando, y tenemos que poner la linea siguiente con el die para que se frene el script en ese momento y pueda ejecutarse la funcin header, ya que si no frenamos el script, primero va a leer y ejecutar todo y despus va a tener accin el header( Location: ). La pgina contacto_error.php puede contener simplemente un mensaje que diga El formulario de contacto no ha podido ser enviado, por favor asegrese de que haya completado todos los campos correctamente. y un link a la pgina del formulario de contacto para que vuelva a enviarlo.
Cuerpo del Mensaje
Nos resta por definir el cuerpo del mensaje que queremos recibir a travs del formulario de contacto, el mismo puede ser algo as:
// definimos el cuerpo del email $cuerpo = De: $nombres \n\r Email: $email \n\r Sexo: $sexo \n\r Mensaje: \n\r $mensaje ;
Como el e-mail llega como texto plano, debemos definirle los saltos de linea con \n\r. Perfecto, ya definimos las variables, ya nos aseguramos que no tengo ningn error, creamos el cuerpo del email, ahora lo que vamos a hacer es enviar el mensaje que recibimos atravs del formulario a nuestra casilla de email. Para ello vamos a utilizar una funcion de php que se llama mail()
Funcin mail
mail ( string $para , string $asunto , string $mensaje );
esta funcin va a responder true o false, dependiendo si se pudo ejecutar correctamente, en nuestro script quedaria algo as:
// enviamos el email if ( mail( direccion.del.destinatario@email.com,'Recibiste un mensaje a travs del formulario de contacto de tu sitio,$cuerpo ) ) { header( Location: contacto_exitoso.php ); die; } else { header( Location: contacto_error.php ); die; }
Fjense que en el primer parmetro de la funcin mail agregamos a dnde queremos que se enve el mensaje, en el segundo parmetro ponemos el asunto y en el tercero el cuerpo que definimos anteriormente. Si la condicin es verdadera, es decir, el e-mail se envi correctamente redireccionamos a una nueva pgina llamada contacto_exitoso.php, la cual contendr un mensaje del estilo: El e-mail ha sido enviado correctamente, a la brevedad nos pondremos en contacto con usted. Y en caso de que no se cumpla redireccionamos a la pgina de error.
Script Completo
El script completo quedara algo asi:
<? // definimos las variables o marcamos el error if ( !empty($_POST['nombres']) ) $nombres = $_POST['nombres']; else $error = true; if ( !empty($_POST['email']) ) $email = $_POST['email']; else $error = true; if ( !empty($_POST['sexo']) ) $sexo = $_POST['sexo']; else $error = true; if ( !empty($_POST['mensaje']) ) $mensaje = $_POST['mensaje']; else $error = true; // verificamos que no exista un error if ( !empty($error) ) { header( Location: contacto_error.php ); die; } // definimos el cuerpo del email $cuerpo = De: $nombres \n\r Email: $email \n\r Sexo: $sexo \n\r Mensaje: \n\r $mensaje "; // enviamos el email if ( mail( direccion.del.destinatario@email.com,'Recibiste un
mensaje a travs del formulario de contacto de tu sitio,$cuerpo ) ) { header( Location: contacto_exitoso.php ); die; } else { header( Location: contacto_error.php ); die; } ?>
Sintaxis
las funciones se pueden definir con la siguiente sintaxis:
<?php function nomber($argumento1, $argumento2, , $argumento_n) { echo Funcin de ejemplo.; return $resultado; } ?>
Vamos a explicar un poco, en el cuerpo de la funcin puede aparecer cualquier instruccin, incluso otra funcin. Lo que s, recuerden que si definimos una variable por fuera de la misma, nicamente se va a poder acceder a ella dentro de la funcin si es una variable global (lo vimos en la clase 2). Dentro de la funcin se pueden pasar tantos argumentos como se deseen. Los mismos pueden ser una variable, un string, un objeto, etc. En return lo que hacemos es decirle que queremos que nos devuelva la funcin. Veamos un ejemplo ms til:
No voy a explicar lo que hace adentro de la funcin porque ya lo veremos ms adelante pero s bsicamente cmo se utiliza esta funcin. Por ejemplo nuestro archivo perfil puede contener lo siguiente
Mi nombre es Hernn y tengo <? echo edad(1977-07-06); ?> aos de edad.
Y en pantalla esto se vera as: Mi nombre es Hernn y tengo 30 aos de edad. Por ahora seguro que este ejemplo no lo ven muy til, pero ya van a ver que en muchos sitios que hagan con php los usuarios al momento de registrarse ponen su fecha de nacimiento, y no es necesario pedirles su edad, ya que se calcula automticamente cada vez que necesiten mostrarla con esta funcioncita. Consejo: conviene tener un archivo funciones.php con todas las funciones de este tipo que utilizan en el sitio, y lo incluyen en todas las pginas, ya van a ver que a la hora de programar utilizan muchos procesos similares, si estos se incluyen en funciones, los pueden llamar a todo momento y as ahorrar muchas lineas de cdigo y de tiempo. A medida que avanzamos con el curso vamos a ir entendiendo igual la fuerza de tener funciones.
Estos conceptos son clave para que los usuarios no pierdan informacin al cambiar de pgina o seccin en un sitio. Seguro tendrs muchas dudas, as que empezemos la clase.
Las sesiones por lo general se acceden ms rpido que las cookies, ya que toda la informacin al ser almacenada en el servidor, no hay que estar envindola del cliente al servidor en forma constante. Ya me imagino la siguiente pregunta:
Para qu usar Cookies si con las Sesiones se logra practicamente lo mismo de forma ms rapida y ms segura?
El problema que tienen las sesiones es que tienen un tiempo de expiracin que no puede ser modificado desde la creacin de la misma, hay que modificarlo desde la configuracin de php. Lo malo de esto es que todas las sesiones duraran el mismo tiempo, a diferencia de las cookies que el tiempo de vida de la misma se configura al momento de crearla. Por otro lado, si se desea usar sesiones hay que inicializarlas antes de empezar a realizar cualquier otra cosa en php y si a una pgina no se le avis que empiece a hacer uso de sesiones, las mismas no van a correr, por lo que la aplicacin web no va a poder acceder a la informacin de la misma, a diferencia de las cookies, donde no hay que avisar nada, si existe la cookie, se lee y santo remedio. Por el momento no voy a profundizar ms en el uso de sesiones y cookies, ya que veremos cmo utilizarlas cuando comencemos con la creacin de nuestro blog, por ahora es informacin suficiente como para que tengan nociones de qu son y en qu casos se utilizan.
Interaccin
La interaccin entre php y las base de datos se realiza a travs de herramientas propias del lenguaje Php, por un lado, y escribiendo los pedidos a la base de datos en un idioma universal, SQL (Structured Query Language) por otro, que podremos encontrar en todas las bases de datos. De todas formas no se asustn, SQL es muy sencillo (pero muy potente) y facil de aprender. Hasta la semana que viene.
Ventajas de MySQL
Es una base de datos muy rpida en la lectura en aplicaciones web, convirtindola en la herramienta ideal para este tipo de aplicaciones. Por otro lado est disponible en gran cantidad de plataformas y sistemas, brindando a su vez, una conectividad muy segura. Nos da tambin una potencia sin igual, ya que utiliza SQL como lenguaje para consultar la base de datos (usar ese motor nos ahorrar una gran cantidad de trabajo). Tambin es muy portable por la misma caracterstica anterior, SQL es fcilmente portable a otras plataformas y nos brinda una gran escalabilidad, pudiendo manipular base de datos enormes con ms de 50 millones de registros.
encontrarlo pre-instalado en casi todos los servicios de hosting. De hecho si instalan XAMPP (paquete de instalacin de un servidor PHP - Apache - MySQL) podrn ver como ya viene configurado y listo para usar. Este programa permite acceder a todas las funciones tpicas de la base de datos MySQL de forma muy intuitiva. Bsicamente no se necesita tener conocimientos previos de base de datos para comenzar a crear tablas y agregar contenido.
http://es.scribd.com/doc/134212397/Transition-Guide-l7b-1000-Copy