Foros del Web » Programando para Internet » PHP »

Problema con formulario de envio php

Estas en el tema de Problema con formulario de envio php en el foro de PHP en Foros del Web. Hola, tengo un problema con este formulario, ya ue no llega ningún mensaje a la dirección descrita. Por que? decir que es la primea cosa ...
  #1 (permalink)  
Antiguo 23/11/2006, 16:23
Avatar de hector_he  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 207
Antigüedad: 17 años, 8 meses
Puntos: 4
Problema con formulario de envio php

Hola, tengo un problema con este formulario, ya ue no llega ningún mensaje a la dirección descrita. Por que?
decir que es la primea cosa que hago en lenguage php.

Muchas Gracias de antemano.

Código PHP:
<? 
if (!$HTTP_POST_VARS){ 
?>

<form action="encuesta.php" method=post>
<h2 style="margin-top:0px">Datos personales</h2>
Nombre y Apellidos 
<input type="text" name="nombre" size="30" maxlength="100"> 
<br /> 
Edad 
<input type="text" name="edad" size="30" maxlength="100"> 
<br /> 
Ciudad 
<input type="text" name="ciudad" size="30" maxlength="100"> 
<br /> 
Email
<input type="text" name="email" size="25" maxlength="100"> 
<br />
<h2>Pregunta 1</h2><br />
<input type="radio" name="ciudadconcierto" value="1">Barcelona 
<br>
<input type="radio" name="ciudadconcierto" value="2">Madrid 
<br>
<h2>Pregunta 2</h2><br />
<input type="text" name="email" size="25" maxlength="100">
<h2>Pregunta 3</h2><br />
1.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
2.<input type="text" name="grupoprefe" size="30" maxlength="100"><br /> 
3.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
4.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
5.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
<h2>Pregunta 3</h2><br />
1.<input type="text" name="grupocd" size="30" maxlength="100"><br />
2.<input type="text" name="grupocd" size="30" maxlength="100"><br /> 
3.<input type="text" name="grupocd" size="30" maxlength="100"><br />
4.<input type="text" name="grupocd" size="30" maxlength="100"><br />
5.<input type="text" name="grupocd" size="30" maxlength="100"><br />
<h2>Pregunta 5.</h2><br />
<input type="text" name="preciocd" size="30" maxlength="100"><br />   
Y por un dvd?<br />
<input type="text" name="preciodvd" size="30" maxlength="100"><br />
<h2>Pregunta 6.</h2><br />
<input type="text" name="conciertos" size="30" maxlength="100"><br />
<input type="submit" value="Enviar">
<input type="Reset" value="Borrar"><br />
<h4>Todos los campos son obligatorios</h4>
</form>

<? 
}else{ 
    
//Estoy recibiendo el formulario, compongo el cuerpo 
    
$cuerpo "Formulario enviado\n"
    
$cuerpo .= "Nombre: " $HTTP_POST_VARS["nombre"] . "\n"
    
$cuerpo .= "Edad: " $HTTP_POST_VARS["edad"] . "\n"
    
$cuerpo .= "Ciudad: " $HTTP_POST_VARS["ciudad"] . "\n"
    
$cuerpo .= "Email: " $HTTP_POST_VARS["email"] . "\n"
    
$cuerpo .= "Ciudadparaconcierto: " $HTTP_POST_VARS["ciudadconcierto"] . "\n"
    
$cuerpo .= "Grupospreferidos: " $HTTP_POST_VARS["grupoprefe"] . "\n"
    
$cuerpo .= "Cddegrupos: " $HTTP_POST_VARS["grupocd"] . "\n"
    
$cuerpo .= "Preciocd: " $HTTP_POST_VARS["preciocd"] . "\n"
    
$cuerpo .= "Preciodvd: " $HTTP_POST_VARS["preciodvd"] . "\n";
    
$cuerpo .= "Conciertos: " $HTTP_POST_VARS["conciertos"] . "\n"

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

    
//doy las gracias por el envío 
    
echo "Gracias por participar en la encuesta"

?>
  #2 (permalink)  
Antiguo 23/11/2006, 17:09
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
deberias agregar la informacion de Encabezado del email:

Código PHP:
$headers "From: un nombre <[email protected]>\r\n";
$headers .= "Reply-To: [email protected]\r\n";  

mail("[email protected]","Formulario recibido",$cuerpo$headers); 
porque sin esa informacion seguramente mucho clientes de email no permitan ingresar tus email.

Otro tema es que $HTTP_POST_VARS es viejo ya. Deberias usar $_POST['var']

Saludos, FS
__________________
oohh... quisiera ser godines!!!
  #3 (permalink)  
Antiguo 23/11/2006, 17:38
Avatar de hector_he  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 207
Antigüedad: 17 años, 8 meses
Puntos: 4
Muchísimas gracias por la respuesta, ahora mismo lo pruevo.

Última edición por hector_he; 23/11/2006 a las 17:44
  #4 (permalink)  
Antiguo 23/11/2006, 17:49
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 17 años, 5 meses
Puntos: 3
No te saca ningun tipo de error? El envio se procesa bien?
Un saludo
  #5 (permalink)  
Antiguo 23/11/2006, 17:52
Avatar de hector_he  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 207
Antigüedad: 17 años, 8 meses
Puntos: 4
Hola, gracias de nuevo, pero el fomrulario no se envia, y no se por que?

Código PHP:
<? 
if (!$_POST){ 
?> 
<form action="encuesta.php" method=post>
<h2 style="margin-top:0px">Datos personales</h2>
Nombre y Apellidos 
<input type="text" name="nombre" size="30" maxlength="100"> 
<br /> 
Edad 
<input type="text" name="edad" size="30" maxlength="100"> 
<br /> 
Ciudad 
<input type="text" name="ciudad" size="30" maxlength="100"> 
<br /> 
Email
<input type="text" name="email" size="25" maxlength="100"> 
<br />
<h2>Pregunta 1</h2>
<input type="radio" name="ciudadconcierto" value="1">Barcelona 
<br>
<input type="radio" name="ciudadconcierto" value="2">Madrid 
<br>
<h2>Pregunta 2</h2>
<input type="text" name="email" size="25" maxlength="100">
<h2>Pregunta 3</h2>
1.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
2.<input type="text" name="grupoprefe" size="30" maxlength="100"><br /> 
3.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
4.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
5.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
<h2>Pregunta 3</h2>
1.<input type="text" name="grupocd" size="30" maxlength="100"><br />
2.<input type="text" name="grupocd" size="30" maxlength="100"><br /> 
3.<input type="text" name="grupocd" size="30" maxlength="100"><br />
4.<input type="text" name="grupocd" size="30" maxlength="100"><br />
5.<input type="text" name="grupocd" size="30" maxlength="100"><br />
<h2>Pregunta 5.</h2>
<input type="text" name="preciocd" size="30" maxlength="100"><br />   
Y por un dvd?<br />
<input type="text" name="preciodvd" size="30" maxlength="100"><br />
<h2>Pregunta 6.</h2>
<input type="text" name="conciertos" size="30" maxlength="100"><br />
<input type="submit" value="Enviar">
<input type="Reset" value="Borrar"><br />
<h4>Toso los campos son obligatorios</h4>
<h4>En caso de consultas, propuestas, etc. contactar con: [email protected]</h4>
</form>
<? 
}else{ 
    
//Estoy recibiendo el formulario, compongo el cuerpo 
    
$cuerpo "Formulario enviado\n"
    
$cuerpo .= "Nombre: " $_POST['nombre'] . "\n"
    
$cuerpo .= "Edad: " $_POST['edad'] . "\n"
    
$cuerpo .= "Ciudad: " $_POST['ciudad'] . "\n"
    
$cuerpo .= "Email: " $_POST['email'] . "\n"
    
$cuerpo .= "Ciudadparaconcierto: " $_POST['ciudadconcierto'] . "\n"
    
$cuerpo .= "Grupospreferidos: " $_POST['grupoprefe'] . "\n"
    
$cuerpo .= "Cddegrupos: " $_POST['grupocd'] . "\n"
    
$cuerpo .= "Preciocd: " $_POST['preciocd'] . "\n"
    
$cuerpo .= "Preciodvd: " $_POST['preciodvd'] . "\n";
    
$cuerpo .= "Conciertos: " $_POST['conciertos'] . "\n"

$headers .= "From: Encuesta <[email protected]>\r\n";
$headers .= "Reply-To: [email protected]\r\n";  

    
mail("[email protected]","Formulario recibido",$cuerpo$headers); 

    
//doy las gracias por el envío 
    
echo "Gracias por participar en la encuesta"

?>
He provado también añadiendo un punto después del primer headers ($headers .=) ya que no sabia si el ejemplo que me habias dado era a si o faltava el punto.

Gracias de antemano.
  #6 (permalink)  
Antiguo 23/11/2006, 18:01
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 17 años, 5 meses
Puntos: 3
Que no recives el envio ya lo sabemos y el codigo tambien, te pregunto si no te reporta ningun tipo de error? que servidor de correo utilizas?
Un saludo!
  #7 (permalink)  
Antiguo 23/11/2006, 18:08
Avatar de hector_he  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 207
Antigüedad: 17 años, 8 meses
Puntos: 4
Hola komodo, gracias por responder.
La verdad s que no me da ningún mensaje de error, cuando pico enviar me sale correctamente el mensaje de "gracias" sin ningún problema.

Lo que entiendo es lo del servidor de correo...haciendo gala de mi ignorancia
  #8 (permalink)  
Antiguo 23/11/2006, 18:22
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 17 años, 5 meses
Puntos: 3
La función 'mail' por si sola no envia ningun correo, necesita un servidor de correo que és el que hará el trabajo del envio. Si no te reporta ningun error el php significa que no tienes ningun error en el codigo y entiendo que podria ser proble del servidor.Estas usando un servidor local o tienes alojado el proyecto en un servidor ajeno?

Un saludo
  #9 (permalink)  
Antiguo 23/11/2006, 18:42
Avatar de hector_he  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 207
Antigüedad: 17 años, 8 meses
Puntos: 4
El projecto está subido a un servidor ajeno (servidores de IESPANA) ya que soporta php.
Significa que devería instalarme un servidor para correo?

pd: Gracias por tu paciencia komodo!
  #10 (permalink)  
Antiguo 24/11/2006, 12:03
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
Cita:
Iniciado por hector_he Ver Mensaje
He provado también añadiendo un punto después del primer headers ($headers .=) ya que no sabia si el ejemplo que me habias dado era a si o faltava el punto.
No, el primer header va sin el punto. Era como lo habia puesto al principio yo.

podrias porbar poniendo asi para ver que te dice:

Código PHP:
if(mail("[email protected]","Formulario recibido",$cuerpo$headers))
{
    echo 
"Gracias por participar en la encuesta";  
}
else
{
    echo 
"No se puedo mandar";  

si se imprime "No se puede mandar" es que hay algun problema con la configuracion del servidor.

Otra cosa que tenes que probar es de mandar le mail a varias cuentas diferentes. Porque por ahi el mail se esta mandando bien pero hotmail lo toma como spam y no lo deja ingresar.
__________________
oohh... quisiera ser godines!!!
  #11 (permalink)  
Antiguo 24/11/2006, 13:41
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 17 años, 5 meses
Puntos: 3
Hola de nuevo hector! No, no debes instalar ningun servidor de correo si utilizas un servidor externo. IEspana tiene bastantes problemas con el servicio d'envio de mails. Prueba con lo que ha dicho safe y sino funciona ponte en contacto con Iespana.
Un saludo
  #12 (permalink)  
Antiguo 24/11/2006, 20:21
Avatar de hector_he  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 207
Antigüedad: 17 años, 8 meses
Puntos: 4
Muchas gracias por los consejos y por vuestro tiempo komodo y safe!
He intentado cmbiar la dirección de correo, poner mas heads, pero no me aparece el mensaje correcto pero los mensajes no llegan.

Seguiré intentando.

Código PHP:
<? 
if (!$_POST){ 
?>
<form action="encuesta.php" method=post>
<h2 style="margin-top:0px">Datos personales</h2>
Nombre y Apellidos 
<input type="text" name="nombre" size="30" maxlength="100"> 
<br /> 
Edad 
<input type="text" name="edad" size="30" maxlength="100"> 
<br /> 
Ciudad 
<input type="text" name="ciudad" size="30" maxlength="100"> 
<br /> 
Email
<input type="text" name="email" size="25" maxlength="100"> 
<br />
<h2>Pregunta 1</h2>
<input type="radio" name="ciudadconcierto" value="1">Barcelona 
<br>
<input type="radio" name="ciudadconcierto" value="2">Madrid 
<br>
<h2>Pregunta 2</h2>
<input type="text" name="email" size="25" maxlength="100">
<h2>Pregunta 3</h2>
1.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
2.<input type="text" name="grupoprefe" size="30" maxlength="100"><br /> 
3.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
4.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
5.<input type="text" name="grupoprefe" size="30" maxlength="100"><br />
<h2>Pregunta 3</h2>
1.<input type="text" name="grupocd" size="30" maxlength="100"><br />
2.<input type="text" name="grupocd" size="30" maxlength="100"><br /> 
3.<input type="text" name="grupocd" size="30" maxlength="100"><br />
4.<input type="text" name="grupocd" size="30" maxlength="100"><br />
5.<input type="text" name="grupocd" size="30" maxlength="100"><br />
<h2>Pregunta 5.</h2>
<input type="text" name="preciocd" size="30" maxlength="100"><br />   
Y por un dvd?<br />
<input type="text" name="preciodvd" size="30" maxlength="100"><br />
<h2>Pregunta 6.</h2>
<input type="text" name="conciertos" size="30" maxlength="100"><br />
<input type="submit" value="Enviar">
<input type="Reset" value="Borrar"><br />
</form>
<? 
}else{ 
    
//Estoy recibiendo el formulario, compongo el cuerpo 
    
$cuerpo "Formulario enviado\n"
    
$cuerpo .= "Nombre: " $_POST['nombre'] . "\n"
    
$cuerpo .= "Edad: " $_POST['edad'] . "\n"
    
$cuerpo .= "Ciudad: " $_POST['ciudad'] . "\n"
    
$cuerpo .= "Email: " $_POST['email'] . "\n"
    
$cuerpo .= "Ciudadparaconcierto: " $_POST['ciudadconcierto'] . "\n"
    
$cuerpo .= "Grupospreferidos: " $_POST['grupoprefe'] . "\n"
    
$cuerpo .= "Cddegrupos: " $_POST['grupocd'] . "\n"
    
$cuerpo .= "Preciocd: " $_POST['preciocd'] . "\n"
    
$cuerpo .= "Preciodvd: " $_POST['preciodvd'] . "\n";
    
$cuerpo .= "Conciertos: " $_POST['conciertos'] . "\n";
    
//para el envío en formato HTML
$headers "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

//dirección del remitente
$headers .= "From: Encuesta <[email protected]>\r\n";

    if(
mail("[email protected]","Formulario recibido",$cuerpo$headers))
{
    echo 
"Gracias por participar en la encuesta.";  
}
else
{
    echo 
"No se puedo mandar";  
}
}
?>
  #13 (permalink)  
Antiguo 06/12/2006, 18:23
Avatar de hector_he  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 207
Antigüedad: 17 años, 8 meses
Puntos: 4
Re: Problema con formulario de envio php

Siento reabrir el tema, pero he intentado arreglo pero no consigo que los mensajes llegen.
Estoy desesperado ya que no se cual es la causa y tampoco encontar una solución o una alternativa...(es un encargo)

Gracias
  #14 (permalink)  
Antiguo 07/12/2006, 11:26
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
Re: Problema con formulario de envio php

Hola hector_he,

acabo de probar tu script en un servidor mio y funcionamente a la perfeccion. Osea que el problema tiene que estar relacionado con el servidor que estas usando. Puede ser que tenga mal configurado el SMTP o que figure en alguna lista negra y por eso los clientes de correo no esten dejando entrar los mails que salen de ahi.
__________________
oohh... quisiera ser godines!!!
  #15 (permalink)  
Antiguo 10/12/2006, 13:46
Avatar de hector_he  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 207
Antigüedad: 17 años, 8 meses
Puntos: 4
Re: Problema con formulario de envio php

Hola safe,
Antes de todo, muchas gracias por tu respuesta.
Se puede configurar el SMTP o la única solución es canviar de servidor?
Hay algún servidor (gratuito) donde funcione correctamente?

Última edición por hector_he; 10/12/2006 a las 17:51
  #16 (permalink)  
Antiguo 13/12/2006, 18:10
Avatar de hector_he  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 207
Antigüedad: 17 años, 8 meses
Puntos: 4
Re: Problema con formulario de envio php

Hola a todos,
tan solo decir que ya he descubierto la solución...iespana tiene desactivada la función mail por seguridad (spam...)
Por si a alguien le interesa he encontado una muy buena solución, el único problma es prescindir del código php, wetaller.com ofrece un script para enviar formualrios hechos por ti y como tu quieras tan solo registrándote.

pd: Gracias por todo!
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:38.