Escolar Documentos
Profissional Documentos
Cultura Documentos
qxd
4/4/01
1:48 PM
Page 59
DEVELOPERS
Developers
Correo Correo
contadores y contadores y
Cmo enviar e-mails con PHP
La cara opuesta de ASP! Aprend a programar en este nuevo lenguaje y a construir aplicaciones para tu sitio web. Por Martn Ramos Monso
electrnico electrnico
60
64
Un contador en Perl
Continuamos con la nota del nmero anterior y damos los ltimos retoques a nuestro contador de visitas.
68
59
u s e r s . t e c t i m e s . c o m
Developers_1_PHP_UI#5.qxd
4/4/01
1:48 PM
Page 60
DEVELOPERS
Developers
PHP es un lenguaje nuevo y muy poderoso que nos ofrece un gran nmero de posibilidades para agregar interactividad entre nuestra pgina y los usuarios. En esta ocasin, Martn Ramos Monso, un experto en PHP, nos explica los conceptos bsicos de este lenguaje y nos ensea cmo enviar e-mails desde pginas web.
n la actualidad, no basta slo con tener una pgina web; tampoco sirve, exclusivamente, que sta sea slo linda. La gente est pidiendo ms interactividad, ms dinamismo y velocidad; por lo cual es importante llevar nuestros sitios a la dimensin dinmica, con el fin de aumentar tanto su trfico de visitantes como su utilidad. La forma de interaccin ms conocida y ms sencilla es un Formulario, cualquiera sea el tipo, en donde bsicamente el usuario completar los datos que le solicitemos para luego envirnoslo y que nosotros lo procesemos. El uso de este formulario puede ser tan atractivo como diverso. Con l podremos recabar datos sobre nuestros visitantes, subir archivos a la Web (por ejemplo, banners publicitarios), realizar encuestas interactivas y muchas cosas ms. En sntesis: el lmite slo es nuestra imaginacin. Una excelente herramienta para desarrollar esto y potenciar nuestro sitio con muchsimas funciones es el lenguaje PHP, con el cual dejamos de lado la dimensin esttica de nuestro sitio web para pasar a realizar programas para la Red. PHP (Hypertext Preprocessor) es un lenguaje de programacin que interpreta los comandos en tiempo real (no compila), ejecuta los procesos del lado del servidor (no del lado del cliente, como JavaScript) y va embebido con el cdigo HTML. Adems, posee otra ventaja: es gratis. En esta nota, veremos el procesamiento de los resultados de formularios: por ejemplo, su envo por e-mail.
<html> <head> <title>Ac ponemos el ttulo de la pgina</title> </head> <body> <p>sta es una pgina en HTML Puro</p> </body> </html>
60
u s e r s . t e c t i m e s . c o m
Developers_1_PHP_UI#5.qxd
4/4/01
1:48 PM
Page 61
Pgina en PHP
En este ejemplo de pgina haremos una que nos imprima la suma de dos nmeros. Las variables que guardarn esos nmeros sern num_1 y num_2, y la variable que guardar el total de la suma ser resultado.
<html> <head> <title>Ac ponemos el ttulo de la pgina</title> </head> <body> <p>sta es una pgina en HTML y PHP</p> <? // con el signo // indico los comentarios // Inicializo dos variables (num_1 y num_2) $num_1 = 10; $num_2 = 5; // calculo la suma de ambos nmeros y los guardo en la variable resultado $resultado = $num_1 + $num_2; // Imprimo el resultado sin formato echo $resultado; // Imprimo el resultado con formato html printf(<p><font face=Arial size=2><u>El resultado es</u>: <b>%s</b></font></p>, $resultado); ?> </body> </html>
Notemos que el cdigo PHP va embebido en el HTML; por lo tanto, es muy sencillo en principio, pero se va complicando en la medida en que uno va realizando pginas ms complejas; por ejemplo, con muchas tablas, etc. En estos casos, una vez que ya tenemos definida cul es la funcin del programa y qu resultados va a mostrar, es recomendable proceder de la siguiente forma: 1) Armamos el HTML general, con datos ficticios y el formato que quedar finalmente a la vista del usuario. 2) Reemplazamos los lugares donde deben ir los datos vlidos por las variables que contienen dichos datos, quitando los ficticios. Ahora que ya hemos visto las diferencias bsicas, armaremos un formulario y comenzaremos a ver el manejo de datos.
Figura 1. El sitio oficial de PHP en la Web. Desde aqu podremos su de ltima versin (www.php.net). La pgina bajar principal estadsticas de CACE muestra un
Figura 2. As se ver nuestro formulario de ejemplo a medida que vayamos introduciendo los datos.
Figura 3. sta es la vista de nuestro programa luego de que el usuario complet el formulario y presion [Enviar].
Figura 4. El mail que le enviaremos a los usuarios que completen saber el formulario ser s similar a ste. Para m
u s e r s . t e c t i m e s . c o m
61
Developers_1_PHP_UI#5.qxd
4/4/01
1:48 PM
Page 62
DEVELOPERS
Developers
Armando el formulario
Comenzaremos armando un formulario bsico que sirva para introducir el nombre, la direccin y el telfono. Notemos que donde dice action=...... debe ir la direccin de nuestro programa para procesar dicho formulario. Por ejemplo, programa.php:
resultados y enviarlos por e-mail, o guardarlos en una base de datos, etc. Los mtodos POST y GET sirven para especificar cmo sern enviados los parmetros al programa. El autor del formulario selecciona el mtodo ms apropiado:
<FORM METHOD= POST ACTION = ejemplo.php> <FORM METHOD= GET ACTION = ejemplo.php>
Listado #1
<html> <head> <title>PHP</title> </head> <body> <?if ($tipo != enviar){?> <p>Por favor complete el siguiente formulario</p> <form method=POST action=formulario.php> <p>Nombre <input type=text name=nombre></p> <p>Direccion <input type=text name=direccion></p> <p>Telefono <input type=text name=telefono></p> <p>E-mail <input type=text name=e_mail></p> <p>Que hacemos <select size=1 name=hacemos> <option value=resultados>Mostramos los resultados</option> <option value=e_mail>Enviamos los resultados por e-mail</option> <option value=ambas>Ambas - Mostramos los resultados y mandamos el mail</option> </select></p> <p><input type=submit value=Enviar name=B1><input type=reset value=Restablecer name=B2></p> <input type=hidden name=tipo value=enviar> </form> <? } else{ // Supuestamente tengo los campos completos // Aqu debo elegir qu hacer con los resultados if ($hacemos == resultados){ ?> <p>Hemos recibido los siguientes datos</p> <p><b><u>Nombre</u></b>: <? echo $nombre; ?></p> <p><b><u>Direccin</u></b>: <?echo $direccion; ?></p> <p><b><u>Telfono</u></b>: <? echo $telefono; ?></p> <p><b><u>E-mail</u></b>: <? echo $e_mail; ?></p>
<? }if ($hacemos == e_mail){ // Para enviar un mensaje utilizamos la funcin mail $contenido = Gracias por darse de alta\n\n; $contenido .= Nombre: . $nombre . \n; $contenido .= Direccion: . $direccion . \n; $contenido .= Telefono: . $telefono . \n; $contenido .= E-mail: . $e_mail . \n; $contenido .= \n\nMartin; mail ($e_mail, Confirmacion, $contenido, From: Martin <mramos@infocomercial.com>); echo El mensaje ya ha sido enviado;} if ($hacemos == ambas){ // Primero muestro los resultados ?> <p>Hemos recibido los siguientes datos</p> <p><b><u>Nombre</u></b>: <? echo $nombre; ?></p> <p><b><u>Direccin</u></b>: <? echo $direccion; ?></p> <p><b><u>Telefono</u></b>: <? echo $telefono; ?></p> <p><b><u>E-mail</u></b>: <? echo $e_mail; ?></p> <? // Envio los resultados por e-mail $contenido = Gracias por dase de alta\n\n; $contenido .= Nombre: . $nombre . \n; $contenido .= Direccion: . $direccion . \n; $contenido .= Telefono: . $telefono . \n; $contenido .= E-mail: . $e_mail . \n; $contenido .= \n\nMartin; mail ($e_mail, Confirmacion, $contenido, From: Martin <mramos@infocomercial.com>); echo El mensaje ya ha sido enviado; } } ?> </body> </html>
62
u s e r s . t e c t i m e s . c o m
Developers_1_PHP_UI#5.qxd
4/4/01
1:48 PM
Page 63
<p>Nombre y Apellido <input type=text name=nombre size=20></p> <p>Direccion <input type=text name=direccion size=20></p> <p>Telefono <input type=text name=telefono size=20></p> <p><input type=submit value=Enviar name=B1><input type=reset value=Restablecer name=B2></p> <input type=hidden name=tipo value=enviar> </form>
En este ejemplo hemos introducido un campo oculto, llamado tipo, y cuyo valor es enviar. Generalmente, la mayora de los formularios constan de dos pginas: la primera es la pgina principal donde aparece el formulario, y la segunda, la pgina o programa que procesa sus resultados. En nuestro ejemplo prximo, realizaremos un programa que se ocupar de ambas funciones en una nica pgina. El objetivo es procesar los datos antes mencionados (nombre, direccin, telfono y mail) y sobre estos datos producir las siguientes acciones, segn la eleccin del usuario. Las acciones posibles son: Opcin 1: Mostrar los resultados. Opcin 2: Enviar los resultados por e-mail. Opcin 3: Realizar ambas cosas (mostrar los resultados y enviarlos por correo electrnico).
Opcin 1: Mostrar resultados. En esta opcin, simplemente imprimimos, mediante el comando echo, printf o similar, los resultados obtenidos del formulario. Opcin 2: Enviar los resultados por e-mail. En este caso, utilizamos la funcin mail de PHP, para enviar los resultados por e-mail al destinatario. La funcin mail tiene la siguiente sintaxis:
Analizando el cdigo
En nuestro cdigo vemos dos secciones bien definidas separadas por un condicional if. El if pregunta por si el parmetro tipo tiene un valor distinto (!=) de enviar. Si tiene un valor diferente, significa que entramos en el programa por primera vez, con lo cual lo primero que deber mostrar es el formulario. Cuando el usuario complete dicho formulario y presione el botn [Enviar], junto con los datos, enviar el parmetro oculto que mencionamos anteriormente, llamado tipo, y el valor que enviar es enviar para dicha variable. Cuando se vuelva a ejecutar el programa formulario.php, recorrer el if principal, y entrar en el segundo segmento de cdigo (por el else). Ahora, la variable tiene como valor el string enviar. En este segmento de cdigo, el programa nos vuelve a preguntar, con distintos condicionales if, qu operacin queremos realizar (mostrar los resultados, enviarlos, etc.). Tendremos un if por cada tipo de operacin. El tipo de operacin es el que el usuario seleccion previamente en el formulario (en la lista desplegable), cuyo nombre de variable es hacemos. Si la operacin elegida es Mostrar los resultados, entrar en el if donde la variable hacemos tenga como valor el string resultados. Si es otra, ir recorriendo los distintos if hasta encontrar la opcin correspondiente a la seleccin del usuario. Analicemos cada una de las opciones posibles:
Conclusin
Vimos cmo crear un formulario sencillo con PHP. Tambin vimos cmo armar el programa para procesarlo, con formulario incluido, identificando el tipo de operacin que el usuario quiera realizar. Ya nada nos impide comenzar a experimentar con este lenguaje y hacer, por ejemplo, el mismo formulario para almacenar dicha informacin en una base de datos. Pero bueno, eso lo dejaremos para la prxima.
u s e r s . t e c t i m e s . c o m
63