Você está na página 1de 5

Developers_1_PHP_UI#5.

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

E-mails desde la Web con ASP


Como si fuera poco, adems de ensearte aplicaciones con PHP, te mostramos cmo hacer lo mismo con ASP.

Por Marcelo Ruiz

64

Un contador en Perl
Continuamos con la nota del nmero anterior y damos los ltimos retoques a nuestro contador de visitas.

Por Martn Scandroli

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

Cmo enviar e-mails con PHP

Programando en en PHP PHP Programando


Martn Ramos Monso
mramos@infcomercial.com

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.

A trabajar con PHP


PHP funciona mezclando el cdigo HTML con el de PHP en una misma pgina web. La insercin se realiza de modo muy similar a como lo hace JavaScript: insertando el cdigo entre los tags <? y ?>. Un ejemplo claro de esto sera, para el caso de una pgina en HTML puro:

<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].

Sobre los formularios


En una primera instancia, sabemos que tenemos un formulario donde introducimos datos y, luego de presionar un botn de enviar, lo que hacemos es llamar al programa que manejar los resultados de dicho formulario. Ese tipo de programas puede ser en PHP, PERL, ASP, etc. Este programa recibe como parmetros los campos del formulario (los visibles y los no visibles) y se ejecuta produciendo el resultado, para lo cual fue creado. Por ejemplo, mostrar los

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>

<form method=POST action=http://wwwww...>

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:

mail (para, tema, contenido, headers);


Cualquier mensaje que nosotros deseemos enviar deber contener las siguientes partes: Destinatario: la persona que recibir dicho mensaje Tema: ttulo del mensaje Contenido: el texto principal del mensaje Respuesta: direccin a la cual se enviarn las respuestas a dicho mensaje La direccin de correo electrnico del destinatario ser el campo e-mail, completado por el usuario en el formulario. El tema del mensaje ser el contenido, y la direccin de respuesta, la que nosotros ingresemos en el cdigo del programa cuando lo armemos. En este caso fueron utilizadas las siguientes: Tema: confirmacin Contenido: armamos un string con el contenido que deseamos enviar. Podemos utilizar \n para comenzar una nueva lnea, con el fin de no ver todo el mensaje corrido, sin saltos de lneas. En esta parte, tambin utilizamos el punto para concatenar el texto a los valores de las variables.

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:

$contenido .= Telefono: . $telefono . \n;


El .= significa que la variable contenido ser igual a su valor actual ms lo que contina. Es lo mismo que poner lo siguiente:

$contenido = $contenido . xxxxxxxx;


Respuesta: mramos@infocomercial.com. Debemos incluir un string del tipo From: Martin <mramos@infocomercial.com>. Opcin 3: Mostrar resultados y enviarlos por e-mail. Aqu utilizamos los cdigos escritos arriba para ambas opciones anteriores. Pueden encontrar el cdigo completo en la pgina 62 y en la carpeta DEVELOPERS del CD que acompaa a esta revista.

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

Você também pode gostar