SlideShare una empresa de Scribd logo
electrónico
contadorescontadoresyy
CorreoCorreo
u s e r s . t e c t i m e s . c o m 59
DevelopersDEVELOPERS
68
60
electrónico
64
Cómo 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 Martín Ramos Monso
E-mails desde la Web con ASP
Como si fuera poco, además de enseñarte aplicaciones
con PHP, te mostramos cómo hacer lo mismo con ASP.
Por Marcelo Ruiz
Un contador en Perl
Continuamos con la nota del número anterior y damos
los últimos retoques a nuestro contador de visitas.
Por Martín Scandroli
Developers_1_PHP_UI#5.qxd 4/4/01 1:48 PM Page 59
DevelopersDEVELOPERS
Programando en PHP
En la actualidad, no basta sólo con tener una
página web; tampoco sirve, exclusivamente,
que ésta sea sólo “linda”. La gente está pi-
diendo más interactividad, más dinamismo y velocidad;
por lo cual es importante llevar nuestros sitios a la dimen-
sión dinámica, con el fin de aumentar tanto su tráfico de
visitantes como su utilidad.
La forma de interacción más conocida y más sencilla es un
Formulario, cualquiera sea el tipo, en donde básicamente
el usuario completará los datos que le solicitemos para lue-
go enviárnoslo y que nosotros lo procesemos. El uso de es-
te formulario puede ser tan atractivo como diverso. Con él
podremos recabar datos sobre nuestros visitantes, subir ar-
chivos a la Web (por ejemplo, banners publicitarios), reali-
zar encuestas interactivas y muchas cosas más. En síntesis:
el límite sólo es nuestra imaginación.
Una excelente herramienta para desarrollar esto y potenciar
nuestro sitio con muchísimas funciones es el lenguaje PHP,
con el cual dejamos de lado la dimensión estática de nues-
tro sitio web para pasar a realizar programas para la Red.
PHP (Hypertext Preprocessor) es un lenguaje de programa-
ción que interpreta los comandos en tiempo real (no com-
pila), ejecuta los procesos del lado del servidor (no del la-
do del cliente, como JavaScript) y va embebido con el có-
digo HTML. Además, posee otra ventaja: es gratis.
En esta nota, veremos el procesamiento de los resultados
de formularios: por ejemplo, su envío por e-mail.
A trabajar con PHP
PHP funciona mezclando el código HTML con el de PHP
en una misma página web. La inserción se realiza de mo-
do muy similar a como lo hace JavaScript: insertando el
código entre los tags <? y ?>.
Un ejemplo claro de esto sería, para el caso de una pági-
na en HTML puro:
<html>
<head>
<title>Acá ponemos el título de la página</title>
</head>
<body>
<p>Ésta es una página en HTML Puro</p>
</body>
</html>
Cómo enviar e-mails con PHP
Programando en PHPMartín Ramos Monso
mramos@infcomercial.com
u s e r s . t e c t i m e s . c o m60
PHP es un lenguaje nuevo y muy
poderoso que nos ofrece un gran
número de posibilidades para agregar
interactividad entre nuestra página y
los usuarios. En esta ocasión, Martín
Ramos Monso, un experto en PHP,
nos explica los conceptos básicos de
este lenguaje y nos enseña cómo
enviar e-mails desde páginas web.
Developers_1_PHP_UI#5.qxd 4/4/01 1:48 PM Page 60
Para saber más
La página principal de estadísticas de CACE muestra un
u s e r s . t e c t i m e s . c o m 61
Página en PHP
En este ejemplo de página haremos una que nos imprima la
suma de dos números. Las variables que guardarán esos núme-
ros serán num_1 y num_2, y la variable que guardará el total
de la suma será “resultado”.
<html>
<head>
<title>Acá ponemos el título de la página</title>
</head>
<body>
<p>Ésta es una página 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 números 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 código 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 páginas más complejas;
por ejemplo, con muchas tablas, etc. En estos casos, una vez
que ya tenemos definida cuál es la función del programa y qué
resultados va a mostrar, es recomendable proceder de la si-
guiente forma:
1) Armamos el HTML general, con datos ficticios y el forma-
to que quedará finalmente a la vista del usuario.
2) Reemplazamos los lugares donde deben ir los datos váli-
dos por las variables que contienen dichos datos, quitando los
ficticios.
Ahora que ya hemos visto las diferencias básicas, armaremos
un formulario y comenzaremos a ver el manejo de datos.
Sobre los formularios
En una primera instancia, sabemos que tenemos un formula-
rio donde introducimos datos y, luego de presionar un botón
de enviar, lo que hacemos es llamar al programa que maneja-
rá los resultados de dicho formulario. Ese tipo de programas
puede ser en PHP, PERL, ASP, etc.
Este programa recibe como parámetros los campos del formu-
lario (los visibles y los no visibles) y se ejecuta produciendo
el resultado, para lo cual fue creado. Por ejemplo, mostrar los
Figura 1. El sitio oficial de PHP en la Web. Desde aquí
podremos bajar su última versión (www.php.net).
Figura 2. Así se verá nuestro formulario de ejemplo a
medida que vayamos introduciendo los datos.
Figura 4. El mail que le enviaremos a los usuarios que
completen el formulario será similar a éste.
Figura 3. Ésta es la vista de nuestro programa luego
de que el usuario completó el formulario y presionó
[Enviar].
Developers_1_PHP_UI#5.qxd 4/4/01 1:48 PM Page 61
DevelopersDEVELOPERSDEVELOPERS
u s e r s . t e c t i m e s . c o m62
DevelopersDEVELOPERS
<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>Dirección</u></b>: <?echo $direccion;
?></p>
<p><b><u>Teléfono</u></b>: <? echo $telefono; ?></p>
<p><b><u>E-mail</u></b>: <? echo $e_mail; ?></p>
Listado #1
resultados y enviarlos por e-mail, o guardarlos en una base de
datos, etc.
Los métodos POST y GET sirven para especificar cómo serán
enviados los parámetros al programa. El autor del formulario
selecciona el método más apropiado:
<FORM METHOD= POST ACTION = “ejemplo.php”>
<FORM METHOD= GET ACTION = “ejemplo.php”>
Armando el formulario
Comenzaremos armando un formulario básico que sirva para
introducir el nombre, la dirección y el teléfono.
Notemos que donde dice action=”......” debe ir la dirección
de nuestro programa para procesar dicho formulario. Por ejem-
plo, programa.php:
<form method=”POST” action=”http://wwwww...”>
<?
}if ($hacemos == “e_mail”){
// Para enviar un mensaje utilizamos la función
mail
$contenido = “Gracias por darse de altann”;
$contenido .= “Nombre: “ . $nombre . “n”;
$contenido .= “Direccion: “ . $direccion . “n”;
$contenido .= “Telefono: “ . $telefono . “n”;
$contenido .= “E-mail: “ . $e_mail . “n”;
$contenido .= “nnMartin”;
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>Dirección</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 altann”;
$contenido .= “Nombre: “ . $nombre . “n”;
$contenido .= “Direccion: “ . $direccion . “n”;
$contenido .= “Telefono: “ . $telefono . “n”;
$contenido .= “E-mail: “ . $e_mail . “n”;
$contenido .= “nnMartin”;
mail ($e_mail, “Confirmacion”, $contenido, “From:
Martin <mramos@infocomercial.com>”);
echo “El mensaje ya ha sido enviado”;
}
}
?>
</body>
</html>
Developers_1_PHP_UI#5.qxd 4/4/01 1:48 PM Page 62
u s e r s . t e c t i m e s . c o m 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, llama-
do tipo, y cuyo valor es enviar.
Generalmente, la mayoría de los formularios constan de dos
páginas: la primera es la página principal donde aparece el
formulario, y la segunda, la página o programa que procesa
sus resultados.
En nuestro ejemplo próximo, realizaremos un programa que
se ocupará de ambas funciones en una única página. El obje-
tivo es procesar los datos antes mencionados (nombre, direc-
ción, teléfono y mail) y sobre estos datos producir las siguien-
tes acciones, según la elección del usuario.
Las acciones posibles son:
• Opción 1: Mostrar los resultados.
• Opción 2: Enviar los resultados por e-mail.
• Opción 3: Realizar ambas cosas (mostrar los resultados y
enviarlos por correo electrónico).
Analizando el código
En nuestro código vemos dos secciones bien definidas se-
paradas por un condicional if. El if pregunta por si el pará-
metro 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
botón [Enviar], junto con los datos, enviará el parámetro
oculto que mencionamos anteriormente, llamado tipo, y el va-
lor 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
código (por el else). Ahora, la variable “tiene” como valor el
string enviar.
En este segmento de código, el programa nos vuelve a pre-
guntar, con distintos condicionales if, qué operación quere-
mos realizar (mostrar los resultados, enviarlos, etc.). Tendre-
mos un if por cada tipo de operación.
El tipo de operación es el que el usuario seleccionó previa-
mente en el formulario (en la lista desplegable), cuyo nombre
de variable es “hacemos”.
Si la operación 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 en-
contrar la opción correspondiente a la selección del usuario.
Analicemos cada una de las opciones posibles:
• Opción 1: Mostrar resultados. En esta opción, simplemen-
te imprimimos, mediante el comando echo, printf o similar,
los resultados obtenidos del formulario.
• Opción 2: Enviar los resultados por e-mail. En este caso,
utilizamos la función mail de PHP, para enviar los resultados
por e-mail al destinatario. La función mail tiene la siguiente
sintaxis:
mail (para, tema, contenido, headers);
Cualquier mensaje que nosotros deseemos enviar deberá con-
tener las siguientes partes:
• Destinatario: la persona que recibirá dicho mensaje
• Tema: título del mensaje
• Contenido: el texto principal del mensaje
• Respuesta: dirección a la cual se enviarán las respuestas
a dicho mensaje
La dirección de correo electrónico del destinatario será el
campo e-mail, completado por el usuario en el formulario. El
tema del mensaje será el contenido, y la dirección de respues-
ta, la que nosotros ingresemos en el código del programa
cuando lo armemos. En este caso fueron utilizadas las si-
guientes:
• Tema: confirmación
• Contenido: armamos un string con el contenido que de-
seamos enviar. Podemos utilizar “n” para comenzar una nue-
va línea, con el fin de no ver todo el mensaje corrido, sin sal-
tos de líneas.
En esta parte, también utilizamos el punto para concatenar
el texto a los valores de las variables.
$contenido .= “Telefono: “ . $telefono . “n”;
El .= significa que la variable “contenido” será igual a su va-
lor actual más lo que continúa. Es lo mismo que poner lo si-
guiente:
$contenido = $contenido . “xxxxxxxx”;
• Respuesta: mramos@infocomercial.com. Debemos incluir un string
del tipo From: Martin <mramos@infocomercial.com>.
• Opción 3: Mostrar resultados y enviarlos por e-mail. Aquí
utilizamos los códigos escritos arriba para ambas opciones an-
teriores.
Pueden encontrar el código completo en la página 62 y en la
carpeta DEVELOPERS del CD que acompaña a esta revista.
Conclusión
Vimos cómo crear un formulario sencillo con PHP. También
vimos cómo armar el programa para procesarlo, con formulario
incluido, identificando el tipo de operación 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 información en una base de datos. Pero
bueno, eso lo dejaremos para la próxima.
Developers_1_PHP_UI#5.qxd 4/4/01 1:48 PM Page 63

Más contenido relacionado

PDF
Guia N2 Proyectos Web Php
DOCX
Elaboración de páginas web
PPTX
Listado de etiquetas y atributos html
PPTX
Programacion Avanzada I
DOCX
Formulario
Guia N2 Proyectos Web Php
Elaboración de páginas web
Listado de etiquetas y atributos html
Programacion Avanzada I
Formulario

La actualidad más candente (14)

PDF
Guia de repaso html11
DOCX
Html investigacion
PPTX
Retro2011ortegon
PPTX
INTRODUCCIÓN A LA PROGRAMACIÓN EN PHP
DOCX
PPSX
Curso HTML 5 & jQuery - Leccion 4
DOCX
Guia Practica Maquetación HTML5, CSS
PPTX
Retro2011ortegon
PDF
Etiquetas de html
PPSX
Curso HTML 5 & jQuery - Leccion 5
PPT
PDF
Php y pdf
PDF
Las etiquetas más utilizadas en html
PPTX
Retro2011brandon
Guia de repaso html11
Html investigacion
Retro2011ortegon
INTRODUCCIÓN A LA PROGRAMACIÓN EN PHP
Curso HTML 5 & jQuery - Leccion 4
Guia Practica Maquetación HTML5, CSS
Retro2011ortegon
Etiquetas de html
Curso HTML 5 & jQuery - Leccion 5
Php y pdf
Las etiquetas más utilizadas en html
Retro2011brandon
Publicidad

Destacado (8)

PPS
Monsaraz
PDF
โอเนต53
DOC
ใบกิจกรรมการเรียนรู้เรื่องสามชุก
PPS
Cerrando circulos
PPSX
PDF
ใบงานที่ 12
Monsaraz
โอเนต53
ใบกิจกรรมการเรียนรู้เรื่องสามชุก
Cerrando circulos
ใบงานที่ 12
Publicidad

Similar a Php (20)

PPTX
Aprendiendo php 3
PPTX
Introducción a PHP
PDF
Gestion de formularios php
DOCX
Anthony saravia documentacion-php
PPT
Tema3[php]
PPTX
Cuarto parcial info
PDF
Guia programacionwebdesarrollositiosweb
DOCX
Laboratorio 3 Andres Moreno
PDF
Curso php desde_cero
ODP
Formularios
PDF
Curso php-my sql-clase-2
PDF
Curso php - capitulo 1 (introducción)
PDF
Guiacursophp sql
PDF
Curso introduccionphp sql
PPT
Manual+php+básico
PDF
4.Programación con PHP y MySQL
PPT
Introduccion al PHP Introduccion al PHP.ppt
PPT
Introduccion al Lenguaje de ProgramacionPHP.ppt
PPT
Introduccion al PHP.ppt
Aprendiendo php 3
Introducción a PHP
Gestion de formularios php
Anthony saravia documentacion-php
Tema3[php]
Cuarto parcial info
Guia programacionwebdesarrollositiosweb
Laboratorio 3 Andres Moreno
Curso php desde_cero
Formularios
Curso php-my sql-clase-2
Curso php - capitulo 1 (introducción)
Guiacursophp sql
Curso introduccionphp sql
Manual+php+básico
4.Programación con PHP y MySQL
Introduccion al PHP Introduccion al PHP.ppt
Introduccion al Lenguaje de ProgramacionPHP.ppt
Introduccion al PHP.ppt

Más de solucionesinformaticas (20)

PDF
Cmap tools básico
PDF
Bd relacional
PDF
Arc view gis 3.1
PDF
Red wifi invitado v1.0
PDF
Red inalambrica imagenio
PDF
Programacion1
PDF
Programacion bajo linux
PDF
PDF
Php bajo linux
PDF
Mysql workbench en.a4
PDF
PDF
PDF
Visual basic 6
PDF
Visual basic con access
PDF
Visual basic multimedia
Cmap tools básico
Bd relacional
Arc view gis 3.1
Red wifi invitado v1.0
Red inalambrica imagenio
Programacion1
Programacion bajo linux
Php bajo linux
Mysql workbench en.a4
Visual basic 6
Visual basic con access
Visual basic multimedia

Último (20)

PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
clase auditoria informatica 2025.........
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
Presentación de Redes de Datos modelo osi
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
Yogurt de tocosh (1).pptx preparacion receta
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
diagrama de pareto.pdf valerie giraldo diaz
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Estrategia de apoyo tecnología grado 9-3
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Temas y subtemas de las fichas 1 y 2.pdf
PPT
introduccion a las_web en el 2025_mejoras.ppt
Estrategia de apoyo tecnología miguel angel solis
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
clase auditoria informatica 2025.........
REDES INFORMATICAS REDES INFORMATICAS.pptx
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Influencia-del-uso-de-redes-sociales.pdf
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Presentación de Redes de Datos modelo osi
SAP Transportation Management para LSP, TM140 Col18
Yogurt de tocosh (1).pptx preparacion receta
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
diagrama de pareto.pdf valerie giraldo diaz
Plantilla para Diseño de Narrativas Transmedia.pdf
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Estrategia de apoyo tecnología grado 9-3
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Presentación PASANTIAS AuditorioOO..pptx
Temas y subtemas de las fichas 1 y 2.pdf
introduccion a las_web en el 2025_mejoras.ppt

Php

  • 1. electrónico contadorescontadoresyy CorreoCorreo u s e r s . t e c t i m e s . c o m 59 DevelopersDEVELOPERS 68 60 electrónico 64 Cómo 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 Martín Ramos Monso E-mails desde la Web con ASP Como si fuera poco, además de enseñarte aplicaciones con PHP, te mostramos cómo hacer lo mismo con ASP. Por Marcelo Ruiz Un contador en Perl Continuamos con la nota del número anterior y damos los últimos retoques a nuestro contador de visitas. Por Martín Scandroli Developers_1_PHP_UI#5.qxd 4/4/01 1:48 PM Page 59
  • 2. DevelopersDEVELOPERS Programando en PHP En la actualidad, no basta sólo con tener una página web; tampoco sirve, exclusivamente, que ésta sea sólo “linda”. La gente está pi- diendo más interactividad, más dinamismo y velocidad; por lo cual es importante llevar nuestros sitios a la dimen- sión dinámica, con el fin de aumentar tanto su tráfico de visitantes como su utilidad. La forma de interacción más conocida y más sencilla es un Formulario, cualquiera sea el tipo, en donde básicamente el usuario completará los datos que le solicitemos para lue- go enviárnoslo y que nosotros lo procesemos. El uso de es- te formulario puede ser tan atractivo como diverso. Con él podremos recabar datos sobre nuestros visitantes, subir ar- chivos a la Web (por ejemplo, banners publicitarios), reali- zar encuestas interactivas y muchas cosas más. En síntesis: el límite sólo es nuestra imaginación. Una excelente herramienta para desarrollar esto y potenciar nuestro sitio con muchísimas funciones es el lenguaje PHP, con el cual dejamos de lado la dimensión estática de nues- tro sitio web para pasar a realizar programas para la Red. PHP (Hypertext Preprocessor) es un lenguaje de programa- ción que interpreta los comandos en tiempo real (no com- pila), ejecuta los procesos del lado del servidor (no del la- do del cliente, como JavaScript) y va embebido con el có- digo HTML. Además, posee otra ventaja: es gratis. En esta nota, veremos el procesamiento de los resultados de formularios: por ejemplo, su envío por e-mail. A trabajar con PHP PHP funciona mezclando el código HTML con el de PHP en una misma página web. La inserción se realiza de mo- do muy similar a como lo hace JavaScript: insertando el código entre los tags <? y ?>. Un ejemplo claro de esto sería, para el caso de una pági- na en HTML puro: <html> <head> <title>Acá ponemos el título de la página</title> </head> <body> <p>Ésta es una página en HTML Puro</p> </body> </html> Cómo enviar e-mails con PHP Programando en PHPMartín Ramos Monso mramos@infcomercial.com u s e r s . t e c t i m e s . c o m60 PHP es un lenguaje nuevo y muy poderoso que nos ofrece un gran número de posibilidades para agregar interactividad entre nuestra página y los usuarios. En esta ocasión, Martín Ramos Monso, un experto en PHP, nos explica los conceptos básicos de este lenguaje y nos enseña cómo enviar e-mails desde páginas web. Developers_1_PHP_UI#5.qxd 4/4/01 1:48 PM Page 60
  • 3. Para saber más La página principal de estadísticas de CACE muestra un u s e r s . t e c t i m e s . c o m 61 Página en PHP En este ejemplo de página haremos una que nos imprima la suma de dos números. Las variables que guardarán esos núme- ros serán num_1 y num_2, y la variable que guardará el total de la suma será “resultado”. <html> <head> <title>Acá ponemos el título de la página</title> </head> <body> <p>Ésta es una página 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 números 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 código 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 páginas más complejas; por ejemplo, con muchas tablas, etc. En estos casos, una vez que ya tenemos definida cuál es la función del programa y qué resultados va a mostrar, es recomendable proceder de la si- guiente forma: 1) Armamos el HTML general, con datos ficticios y el forma- to que quedará finalmente a la vista del usuario. 2) Reemplazamos los lugares donde deben ir los datos váli- dos por las variables que contienen dichos datos, quitando los ficticios. Ahora que ya hemos visto las diferencias básicas, armaremos un formulario y comenzaremos a ver el manejo de datos. Sobre los formularios En una primera instancia, sabemos que tenemos un formula- rio donde introducimos datos y, luego de presionar un botón de enviar, lo que hacemos es llamar al programa que maneja- rá los resultados de dicho formulario. Ese tipo de programas puede ser en PHP, PERL, ASP, etc. Este programa recibe como parámetros los campos del formu- lario (los visibles y los no visibles) y se ejecuta produciendo el resultado, para lo cual fue creado. Por ejemplo, mostrar los Figura 1. El sitio oficial de PHP en la Web. Desde aquí podremos bajar su última versión (www.php.net). Figura 2. Así se verá nuestro formulario de ejemplo a medida que vayamos introduciendo los datos. Figura 4. El mail que le enviaremos a los usuarios que completen el formulario será similar a éste. Figura 3. Ésta es la vista de nuestro programa luego de que el usuario completó el formulario y presionó [Enviar]. Developers_1_PHP_UI#5.qxd 4/4/01 1:48 PM Page 61
  • 4. DevelopersDEVELOPERSDEVELOPERS u s e r s . t e c t i m e s . c o m62 DevelopersDEVELOPERS <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>Dirección</u></b>: <?echo $direccion; ?></p> <p><b><u>Teléfono</u></b>: <? echo $telefono; ?></p> <p><b><u>E-mail</u></b>: <? echo $e_mail; ?></p> Listado #1 resultados y enviarlos por e-mail, o guardarlos en una base de datos, etc. Los métodos POST y GET sirven para especificar cómo serán enviados los parámetros al programa. El autor del formulario selecciona el método más apropiado: <FORM METHOD= POST ACTION = “ejemplo.php”> <FORM METHOD= GET ACTION = “ejemplo.php”> Armando el formulario Comenzaremos armando un formulario básico que sirva para introducir el nombre, la dirección y el teléfono. Notemos que donde dice action=”......” debe ir la dirección de nuestro programa para procesar dicho formulario. Por ejem- plo, programa.php: <form method=”POST” action=”http://wwwww...”> <? }if ($hacemos == “e_mail”){ // Para enviar un mensaje utilizamos la función mail $contenido = “Gracias por darse de altann”; $contenido .= “Nombre: “ . $nombre . “n”; $contenido .= “Direccion: “ . $direccion . “n”; $contenido .= “Telefono: “ . $telefono . “n”; $contenido .= “E-mail: “ . $e_mail . “n”; $contenido .= “nnMartin”; 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>Dirección</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 altann”; $contenido .= “Nombre: “ . $nombre . “n”; $contenido .= “Direccion: “ . $direccion . “n”; $contenido .= “Telefono: “ . $telefono . “n”; $contenido .= “E-mail: “ . $e_mail . “n”; $contenido .= “nnMartin”; mail ($e_mail, “Confirmacion”, $contenido, “From: Martin <mramos@infocomercial.com>”); echo “El mensaje ya ha sido enviado”; } } ?> </body> </html> Developers_1_PHP_UI#5.qxd 4/4/01 1:48 PM Page 62
  • 5. u s e r s . t e c t i m e s . c o m 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, llama- do tipo, y cuyo valor es enviar. Generalmente, la mayoría de los formularios constan de dos páginas: la primera es la página principal donde aparece el formulario, y la segunda, la página o programa que procesa sus resultados. En nuestro ejemplo próximo, realizaremos un programa que se ocupará de ambas funciones en una única página. El obje- tivo es procesar los datos antes mencionados (nombre, direc- ción, teléfono y mail) y sobre estos datos producir las siguien- tes acciones, según la elección del usuario. Las acciones posibles son: • Opción 1: Mostrar los resultados. • Opción 2: Enviar los resultados por e-mail. • Opción 3: Realizar ambas cosas (mostrar los resultados y enviarlos por correo electrónico). Analizando el código En nuestro código vemos dos secciones bien definidas se- paradas por un condicional if. El if pregunta por si el pará- metro 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 botón [Enviar], junto con los datos, enviará el parámetro oculto que mencionamos anteriormente, llamado tipo, y el va- lor 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 código (por el else). Ahora, la variable “tiene” como valor el string enviar. En este segmento de código, el programa nos vuelve a pre- guntar, con distintos condicionales if, qué operación quere- mos realizar (mostrar los resultados, enviarlos, etc.). Tendre- mos un if por cada tipo de operación. El tipo de operación es el que el usuario seleccionó previa- mente en el formulario (en la lista desplegable), cuyo nombre de variable es “hacemos”. Si la operación 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 en- contrar la opción correspondiente a la selección del usuario. Analicemos cada una de las opciones posibles: • Opción 1: Mostrar resultados. En esta opción, simplemen- te imprimimos, mediante el comando echo, printf o similar, los resultados obtenidos del formulario. • Opción 2: Enviar los resultados por e-mail. En este caso, utilizamos la función mail de PHP, para enviar los resultados por e-mail al destinatario. La función mail tiene la siguiente sintaxis: mail (para, tema, contenido, headers); Cualquier mensaje que nosotros deseemos enviar deberá con- tener las siguientes partes: • Destinatario: la persona que recibirá dicho mensaje • Tema: título del mensaje • Contenido: el texto principal del mensaje • Respuesta: dirección a la cual se enviarán las respuestas a dicho mensaje La dirección de correo electrónico del destinatario será el campo e-mail, completado por el usuario en el formulario. El tema del mensaje será el contenido, y la dirección de respues- ta, la que nosotros ingresemos en el código del programa cuando lo armemos. En este caso fueron utilizadas las si- guientes: • Tema: confirmación • Contenido: armamos un string con el contenido que de- seamos enviar. Podemos utilizar “n” para comenzar una nue- va línea, con el fin de no ver todo el mensaje corrido, sin sal- tos de líneas. En esta parte, también utilizamos el punto para concatenar el texto a los valores de las variables. $contenido .= “Telefono: “ . $telefono . “n”; El .= significa que la variable “contenido” será igual a su va- lor actual más lo que continúa. Es lo mismo que poner lo si- guiente: $contenido = $contenido . “xxxxxxxx”; • Respuesta: mramos@infocomercial.com. Debemos incluir un string del tipo From: Martin <mramos@infocomercial.com>. • Opción 3: Mostrar resultados y enviarlos por e-mail. Aquí utilizamos los códigos escritos arriba para ambas opciones an- teriores. Pueden encontrar el código completo en la página 62 y en la carpeta DEVELOPERS del CD que acompaña a esta revista. Conclusión Vimos cómo crear un formulario sencillo con PHP. También vimos cómo armar el programa para procesarlo, con formulario incluido, identificando el tipo de operación 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 información en una base de datos. Pero bueno, eso lo dejaremos para la próxima. Developers_1_PHP_UI#5.qxd 4/4/01 1:48 PM Page 63