Procesando una forma con PHP.
Parte 3: Los últimos detalles.
Por: Falcón
Les voy a soltar un pequeño segmento de código..
no se asusten!
if($elnombre == "" || $elemail
== "" || $elmensaje == ""){
print "Hay que llenar todos los campos!";
} else {
print "Muchas gracias por contactarnos!";
}
Que hace lo anterior? Basicamente verifica que todos los campos
en la forma hayan sido llenados. Si no es asi muestra el mensaje:
"Hay que llenar todos los campos!" y si todo estuvo bien
muestra el mensaje: "Muchas gracias por contactarnos".
Pero vamos a desglosarlo.
if/else
if y else (si/de otra manera) son dos de las herramientas
de construcción de código mas útiles en cualquier
lenguaje de programación. Basicamente es un juego que condiciona
una acción a otra elaborada previamente. No nos perdamos
en la semantica y vamos a los ejemplos:
La mama mandó a pepito al mercado y le dijo: -Si
hay huevos blancos me traes una docena si no me traes media
docena de huevos rojos-
En la frase anterior vemos una condicionante: "Si hay huevos
blancos" seguida de una orden en caso de que la condicionante
sea exitosa: "me traes una docena" luego se define que
hay una alternativa en caso de que la condicionante no resulte exitosa:
"si no" luego la orden en este caso: "me traes media
docena de huevos rojos"
if($elnombre == "" || $elemail
== "" || $elmensaje =="")
Esta es la condicionate. En lenguaje coloquial esto se leeria asi:
Si la variable $elnombre esta vacia o si la varible $elemail esta
vacia o si la variable $elmensaje esta vacia.
En PHP los simbolos || quieren decir: or o en español:
o
Habrá quien ya notó que después de cada
variable hay dos signos de igual (=) en lugar de uno. Esto
es muy importante ya que no estamos asignandole valores a las variables,
sino que estamos comparando el valor de la variable a otro valor
que en este caso es vacio y que se define con dos comillas
seguidas "". Si dejamos solo un signo de igual
(=) PHP le asignaria el valor "" a la variable,
es decir, la dejaria vacia. Por ejemplo:
$elnombre = "";
Avanzando en el segmento de código vemos un simbolo "{"
Este simbolo significa que empieza la orden a ejecutar en caso de
que la condicionante haya sido exitosa, otro simbolo igual solo
que inverso "}" indica a PHP que esta orden ha
terminado.
Entre estos dos simbolos vemos la acción:
print "Hay que llenar todos los campos!";
Esto le dice a PHP que hay que mostrar un mensaje que diga: Hay
que llenar todos los campos! La funcion print hace precisamente
eso, escribe en el documento HTML que se le envia al visitante lo
que se indique entre las comillas.
Luego se indica que hay una alternativa: else
Si se llegó hasta aqui es que la condicionante no resulto
exitosa, es decir, el visitante si lleno todos los campos, entonces
definimos como acción:
print "Muchas gracias por contactarnos!";
Vamos a ver como se ve todo el script completo:
<?php
$elnombre = $_POST['nombre'];
$elemail = $_POST['email'];
$elmensaje = $_POST['mensaje'];
$elasunto = "Me acaban de contactar en mi sitio web!!";
$adondeva = "falcon@urbeinternet.com";
$encabezados .= "From: $elemail<$elemail>\n";
$encabezados .= "X-Sender: <$elemail>\n";
$encabezados .= "X-Mailer: PHP\n";
$encabezados .= "Return-Path: <$elemail>\n";
$mensaje .= "Aqui esta lo que llegó:\n\n";
$mensaje .= "$elnombre con la dirección: $elemail\n";
$mensaje .= "Escribió:\n$elmensaje\n";
if($elnombre == "" || $elemail == "" || $elmensaje
==""){
print "Hay que llenar todos los campos!";
} else {
print "Muchas gracias por contactarnos!";
mail($adondeva, $elasunto, $mensaje, $encabezados);
}
?>
Aquellos que estan atentos se habrán fijado que colocamos
la función mail() dentro de las acciones en caso de que la
condicionante no haya resultado exitosa. Esto es porque queremos
recibir el mail solo cuando el visitante haya llenado todos los
campos, o no?
Hay muchas cosas que se pueden hacer!, por ejemplo, si se quiere
enviar el mensaje a dos direcciones de correo diferentes:
Definimos otro correo a donde enviar el mail:
$otrocorreo = "luis@urbeinternet.com";
Y luego solo mencionamos otra funcion de mail:
mail($otrocorreo, $elasunto, $mensaje,
$encabezados);
Y el script quedaria asi:
<?php
$elnombre = $_POST['nombre'];
$elemail = $_POST['email'];
$elmensaje = $_POST['mensaje'];
$elasunto = "Me acaban de contactar en mi sitio web!!";
$adondeva = "falcon@urbeinternet.com";
$otrocorreo = "luis@urbeinternet.com";
$encabezados .= "From: $elemail<$elemail>\n";
$encabezados .= "X-Sender: <$elemail>\n";
$encabezados .= "X-Mailer: PHP\n";
$encabezados .= "Return-Path: <$elemail>\n";
$mensaje .= "Aqui esta lo que llegó:\n\n";
$mensaje .= "$elnombre con la dirección: $elemail\n";
$mensaje .= "Escribió:\n$elmensaje\n";
if($elnombre == "" || $elemail == "" || $elmensaje
==""){
print "Hay que llenar todos los campos!";
} else {
print "Muchas gracias por contactarnos!";
mail($adondeva, $elasunto, $mensaje, $encabezados);
mail($otrocorreo, $elasunto, $mensaje, $encabezados);
}
?>
Es tooodo amigos!
<-- Parte 2: Empecemos a programar!
<-- Parte 1
|