Ver Mensaje Individual
  #17 (permalink)  
Antiguo 31/01/2013, 09:35
Nogardlsda
 
Fecha de Ingreso: septiembre-2010
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problema con formulario en PHP

Cita:
Iniciado por rodno Ver Mensaje
Buenas,

ya realice una prueba mediante ContactForm, y al parecer funciona, sera real?, te llego el correo?
puedes postear el script de ContactForm,

Saludos
Buenas.. pues creo que no... Pero entre mis pruebas y las que están haciendo los del servidor tengo aquí 20 mensajes que se suponen vienen de ese formulario o del formulario que he subido a mi servidor... déjame que los revise todos....

¿Qué has puesto en el mensaje? Desde qué email? qué asunto? dime algo para que lo identifique.






ACTUALIZACIÓN:

Al parecer... después de un cabreo monumental... se han puesto a ver porqué falla.
Han hecho unos cambios en el código del php (el HTML está igual) al margen de lo que hayan movido en su servidor y ahora funciona aquí.

El codigo es este y lo nuevo está marcado en color.

Código:
<?php 
   
	$youremail = '[email protected]';//enter your own email here!

	//
	// main form
	//

if(isset($_POST["submit"])){
 
   // Creating the email
   $msg      = "Send by: ".$_POST['field1']."\r\n\r\n";
   $msg     .= "Emailaddress: ".$_POST['field2']."\r\n\r\n";
   $msg     .= "Website: ".$_POST['field3']."\r\n\r\n";
   $msg     .= "Phone: ".$_POST['field4']."\r\n\r\n";
   $msg     .= "Subject: ".$_POST['field5']."\r\n\r\n";
   $msg     .= "Message:\r\n";
   $msg     .= $_POST['field6']."\r\n";
   
   $subject  = " Email from ".$_POST['field1'];
   $headers  = " From: ".$youremail;
   $headers .= " Reply-To: ".$_POST['field2'];

	$msg .= "\r\n <br> Vamos a ver que se esta enviando: <pre> ".print_r($_POST,TRUE)."</pre> ";
   
// checking for empty fields 
if((strlen($_POST['field1']) > 1 ) || (strlen($_POST['field2']) > 1 ) || (strlen($_POST['field5']) > 1 ) || (strlen($_POST['field6']) > 1 )){
	
		 
    //Sending the email
   $msg = trim(stripslashes($msg));
   
   //Sending the email	
	echo "email[$youremail], sub[$subject], msg[$msg], headers[$headers]";
   if (mail($youremail, $subject, $msg, $headers)){ 
   	
       // Redirecting to the thank you page
	   header("Location: messagesend.html" );
	   
     }else{
	
	   // If the mail is not send 
	   header("Location: senderror.html" );
	   
   }
   
	}else{
	   // if fields are empty
	   header("Location: senderror2.html" );
	}   
  
}

?>
El email de prueba ahora llega así:

Código:
Send by: Rubén



Emailaddress: [email protected]



Website: http://



Phone:



Subject: Prueba



Message:

Esto es una prueba



 <br> Vamos a ver que se esta enviando: <pre> Array
(
    [field1] => Rubén
    [field2] => [email protected]
    [field3] => http://
    [field4] =>
    [field5] => Prueba
    [field6] => Esto es una prueba
    [submit] => Enviar
)
</pre>



Los cambios que han hecho son:
Insertar un espacio entre las comillas y /Email, From y Reply-to/
Modificar el número de campo en la línea
Código:
$headers .= " Reply-To: ".$_POST['field2'];
(antes field1 - ahora field2)
Insertar línea de código:
Código:
$msg .= "\r\n <br> Vamos a ver que se esta enviando: <pre> ".print_r($_POST,TRUE)."</pre> ";
(Que lo que creo que hace es comprobar que campos se están enviando correctamente en el email)

Insertar "echo":
Código:
echo "email[$youremail], sub[$subject], msg[$msg], headers[$headers]"; 
(se supone que los echo sirven para mostrar variables o ver textos en pantalla... no se la relevancia de insertar este comando pero parece que funciona)