Foros del Web » Programando para Internet » PHP »

Mail()

Estas en el tema de Mail() en el foro de PHP en Foros del Web. A ver mirando en desarrolloweb un articulo para enviar mails a traves de php encontre esto, no lo entiendo muxo, i pregunto: Representa que si ...
  #1 (permalink)  
Antiguo 02/11/2003, 08:07
 
Fecha de Ingreso: octubre-2003
Ubicación: Delante del PC
Mensajes: 78
Antigüedad: 20 años, 5 meses
Puntos: 1
Mail()

A ver mirando en desarrolloweb un articulo para enviar mails a traves de php encontre esto, no lo entiendo muxo, i pregunto:
Representa que si el if no encuntra la variable post_vars muestra el form, i en caso contrario si la encuntra envia el form? me lo explican? es que no entiendo bien para que sirven este if i else. Gracias i ahi va el codigo.


Código PHP:
<? 
if (!$HTTP_POST_VARS){ 
?> 
<form action="envia_form_php.php" method=post> 
Nombre: <input type=text name="nombre" size=16> 
<br> 
Email: <input type=text name=email size=16> 
<br> 
Comentarios: <textarea name=coment cols=32 rows=6></textarea> 
<br> 
<input type=submit value="Enviar"> 
</form> 
<? 
}else{ 
    
//Estoy recibiendo el formulario, compongo el cuerpo 
    
$cuerpo "Formulario enviado\n"
    
$cuerpo .= "Nombre: " $HTTP_POST_VARS["nombre"] . "\n"
    
$cuerpo .= "Email: " $HTTP_POST_VARS["email"] . "\n"
    
$cuerpo .= "Comentarios: " $HTTP_POST_VARS["coment"] . "\n"

    
//mando el correo... 
    
mail("[email protected]","Formulario recibido",$cuerpo); 

    
//doy las gracias por el envío 
    
echo "Gracias por rellenar el formulario. Se ha enviado correctamente."

?>
  #2 (permalink)  
Antiguo 02/11/2003, 08:36
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
Efectivamente ese condicional indica que no venimos del form con las variables ya deficidas nos muestre el form y si ya vienen pues lo envie



Saludos
  #3 (permalink)  
Antiguo 02/11/2003, 09:36
 
Fecha de Ingreso: octubre-2003
Ubicación: Delante del PC
Mensajes: 78
Antigüedad: 20 años, 5 meses
Puntos: 1
alguien me lo puede explicar mas explicitamente?
ese ! ke pinta en el if?
  #4 (permalink)  
Antiguo 02/11/2003, 14:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

! es el operador de negacion. Y PHP tiene implementado que si una variable no existe devuelve el valor NULL. NULL es equivalente a FALSE. Asi que realmente es:

if (!$HTTP_POST_VARS)

si no existe $HTTP_POST_VARS

if (!NULL)

if (!FALSE)

if (TRUE)

y muestra el formulario.

Yo creo que es mas correcto:

if (!isset($HTTP_POST_VARS))

o siendo mas modernos

if (!isset($_POST))

Como esa variables solo existen cuando se ha enviado el formulario, sirve para distinguir cuando se ha enviado.

Saludos.

PD: ¿Que tiene que ver tu titulo con tu duda?
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 02/11/2003, 16:39
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Si te fijas, en la etiqueta <form> hay un atributo method="post"... eso quiere decir que cuando envíes el formulario (con el botón "submit") se enviarán todas las variables a la página que se especifica en el atributo action=(también de la etiqueta <form>). Esas variables se envían dentro de un array llamado $HTTP_POST_VARS... (sería mejor utilizar $_POST).

O sea que las variables que envías serán:
$_POST['nombre']
$_POST['email']
$_POST['coment']

Como tu formulario tiene el atributo action que llama a la misma página, cuando accedes a esa página ¿Te mostrará el formulario? o ¿Enviará el mail y te mostrará el mensaje de "gracias..."?... para decidirlo, Se pregunta al comienzo del script si existe el array $_POST..
-Si existe, quiere decir que la página ha sido llamada desde el formulario con el botón "submit", o sea que ya se ha llenado el formulario, entonces lo que hace es procesar esas variables del array, enviar el mail y mostrar el mensaje: "gracias...".
-Pero si no existe, quiere decir que la página ha sido llamada desde otra parte, menos del formulario... entonces lo que hace es mostrar el formulario y ya no ejecuta la parte del script de enviar mail.

Espero que se haya entendido.

Saludos

Última edición por jpinedo; 02/11/2003 a las 16:42
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:24.