Foros del Web » Programando para Internet » PHP »

No envia la información el Formulario de Contacto

Estas en el tema de No envia la información el Formulario de Contacto en el foro de PHP en Foros del Web. Buenas Tardes, Tengo un problemilla en un formulario de contacto que tengo escrito en mi página Web. Cuando escribí el formulario hara 2 meses funcionaba ...
  #1 (permalink)  
Antiguo 14/02/2011, 09:24
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 1 mes
Puntos: 1
No envia la información el Formulario de Contacto

Buenas Tardes,

Tengo un problemilla en un formulario de contacto que tengo escrito en mi página Web.
Cuando escribí el formulario hara 2 meses funcionaba perfectamente, pero de la noche a la mañana dejó de funcionar.

Mi problema es, que le doy a enviar el formulario, y a mi correo llega el mensaje, pero vacio, no llega nada de la información que solicito.


Aquí dejo el código, Html.

Código HTML:
<form id="enviar.php" name="enviar.php" method='POST' action="enviar.php">

<p><label><h2>Nombre</h2> <input name="nombre" type="text" id="nombre" size="50"/></label></p>

<p><label> <h2>E-mail</h2> <input name="mail" type="text" id="mail" size="80"/></label></p>

<p><label> <h2>Mensaje</h2> <br>
<textarea name="mensaje" cols="60" rows="20" id="mensaje"></textarea></label></p>
											
<p><input type="submit" name="Submit" value="Enviar"></p>
</form> 

Aquí el Php

Código PHP:
$nombre $_POST['nombre'];
$mail $_POST['mail'];

$header 'From: ' $mail " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Content-Type: text/plain";

$mensaje "Este mensaje fue enviado por " $nombre " \r\n";
$mensaje .= "Su e-mail es: " $mail " \r\n";
$mensaje .= "Mensaje: " $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Contacto desde Mipagina';

mail($para$asuntoutf8_decode($mensaje), $header); 

Lo he probado con el código arriba mencionado y con los siguientes códigos también;


Código PHP:
$mail '[email protected]';

$nombre $_POST['nombre'];
$email $_POST['mail'];
$msg $_POST['mensaje']; 

$thank="http://wwwmipagina.es";

$message "
nombre:"
.$nombre."
email:"
.$email."
mensaje:"
.$msg."";
  
  if (
mail($mail,"Mensaje",$message))
        
Header ("Location: $thank"); 

Código PHP:
$dia=date("m.d.Y");
$hora=date("H:i:s");
$destinatario="[email protected]";
$subject" Consulta";
$desde 'From: ' .$_POST[mail];
$contingut "
El mensaje se a enviado el dia $dia a las $hora\n\n
----------------------------------------------------------------------------\n
Nombre: $_POST[nombre]\n
Email: $_POST[mail]\n
Consulta: $_POST[mensaje]\n
----------------------------------------------------------------------------\n
"
;
mail($destinatario$subject$contingut$desde); 

Dichos códigos antes me funcionaban, me llegaban al correo toda la información que me mandaban, pero de repente, empezaron a llegarme los correos así;

Este mensaje fue enviado por
Su e-mail es:
Mensaje:
Enviado el 14/02/2011

Vacios!

¿Alguien me podría ayudar, a ver cual es el problema?


Gracias.
Un Saludo.
  #2 (permalink)  
Antiguo 14/02/2011, 09:49
 
Fecha de Ingreso: junio-2004
Mensajes: 37
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: No envia la información el Formulario de Contacto

Buenas Riddlev9,

A simple vista, sin probar el código y si dices que el correo te llega pero vacío, quiere decir que el formulario y la función mail están funcionando, pero el texto del mensaje no. Por lo que tienes escrito no me queda claro si el contenido de la variable $mensaje lo quieres mandar en UTF8 o en ISO-8859-1. La función correcta para mandar el mensaje en UTF8 es utf8_encode(), con lo que en tu primer código de envio quedaría asi:

mail($para, $asunto, utf8_encode($mensaje), $header);

Tampoco estaría mal que repasaras el tema de las comillas ya que en ocasiones pones simples y en otras dobles -> por ejemplo en la primera linea del formulario pones todo con comillas dobles menos para (method='POST') en xhtml se aconseja que se pongan siempre las comillas dobles. En php para las variables con texto da igual si pones unas u otras, pero siempre sigue la misma regla y para variables númericas es mejor no poner comillas, evita confusiones... Un saludo

Última edición por TEMPUS; 14/02/2011 a las 09:57 Razón: Ampliación de respuesta
  #3 (permalink)  
Antiguo 14/02/2011, 16:05
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: No envia la información el Formulario de Contacto

Buenas,

Gracias por Responder TEMPUS, he mirado la línea que has puesto:

Código PHP:
mail($para$asuntoutf8_encode($mensaje), $header); 
La he colocado en mi código y sigue igual, la información no me llega, el contenido del mensaje llega vacio.

Cita:
Este mensaje fue enviado por
Su e-mail es:
Mensaje:
Enviado el 14/02/2011

En cuanto a las comillas, fué un error mio de escritura al redactarlo aquí. Disculpa las Molestias.


Gracias.
Un Saludo.
  #4 (permalink)  
Antiguo 14/02/2011, 17:20
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: No envia la información el Formulario de Contacto

A simple vista no veo que pueda ser, prueba haciendo un var_dump() a $_POST y las otras variables que utilizas en el mensaje :/
  #5 (permalink)  
Antiguo 14/02/2011, 18:24
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: No envia la información el Formulario de Contacto

Buenas,

He quitado el método POST, y he puesto GET en su lugar, el mensaje me llega perfectamente tal y como lo hacía antes con el método POST, pero aún así, me gustaría saber ¿Por qué ha dejado de funcionar mediante POST?



Gracias.
Un Saludos.

Etiquetas: contacto, formulario
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 02:01.