Foros del Web » Programando para Internet » PHP »

Arreglar este formulario PHP

Estas en el tema de Arreglar este formulario PHP en el foro de PHP en Foros del Web. artdeco el codigo completo por favor, donde recuperas las variables enviadas con el form COMPLETO xD por que aqui $email_destino = "".$row['email'].""; deberias poner $email_destino ...

  #31 (permalink)  
Antiguo 05/10/2008, 16:15
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

artdeco

el codigo completo por favor, donde recuperas las variables enviadas con el form

COMPLETO xD

por que aqui

$email_destino = "".$row['email']."";

deberias poner

$email_destino = $_POST['email'];
  #32 (permalink)  
Antiguo 05/10/2008, 16:17
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

No entiendo =S Me hablas de variables y me pierdo xD Te he pegado lo que tú me has dado, y el formulario html también lo he pegado! ¿Qué más necesitas? No tengo más códigos para mostrar ya xD
  #33 (permalink)  
Antiguo 05/10/2008, 16:18
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

Cita:
Iniciado por jaronu Ver Mensaje
artdeco

el codigo completo por favor, donde recuperas las variables enviadas con el form

COMPLETO xD

por que aqui

$email_destino = "".$row['email']."";

deberias poner

$email_destino = $_POST['email'];

y donde pongo $row['email']; tambien cambialo
y no pegues, adapta
  #34 (permalink)  
Antiguo 05/10/2008, 16:29
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

¡PERFECTÍSIMO!

Ya funciona. Ahooorra (me vas a matar, lo sé xDDD) falta que reenvíe a otra página :-$

En el código siguiente:

Código PHP:
if (@mail($email_destino$asunto$mensaje$headers))   
    {   
      
      
      
     }

?> 
He puesto esto:

Código PHP:
if (@mail($email_destino$asunto$mensaje$headers))   
    { 
    
header ("Location : enviado.html"); 


    }else{  
            echo 
"<h3>Sus datos contienen errores.</h3>";  
        }  
    }

?> 
Pero no ha funcionado tampoco. Eso sí, el correo se ha vuelto a enviar, parece que todo funciona, salvo ese detalle.

Graaacias de nuevo!
  #35 (permalink)  
Antiguo 05/10/2008, 16:33
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

donde esta el archivo enviado.html??

en la misma carpeta o en otra, por que si esta en la misma carpeta tendria que redirigir si envia el email

eso es lo que dice aqui

if (@mail($email_destino, $asunto, $mensaje, $headers))
{
header ("Location : enviado.html");

y si no prueba

if (@mail($email_destino, $asunto, $mensaje, $headers))
{
header ("Location : http://www.tu_web.com/enviado.html");

}else{

//lo que sea

}
  #36 (permalink)  
Antiguo 05/10/2008, 16:39
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Sí, tengo el "enviado.html" en la misma carpeta, claro. Pero no va ni así, ni poniendo la URL completa, se sigue quedando en blanco.

Eso sí, el email se sigue enviando, algo es algo xD
  #37 (permalink)  
Antiguo 05/10/2008, 16:48
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

y no sera

enviado.htm

y no

enviado.html????
  #38 (permalink)  
Antiguo 05/10/2008, 16:59
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Noooo señor! Era .html. Pero, ¡buenas noticias! He mirado el primer código que tuve, y he investigado. Sin tener mucha idea, he visto esto:

Código PHP:
/* Web a la que irás despues de enviarse el email */
       
$web="http://www.tuweb.com/enviado.html";

        
mail($destinatario,$titulo,$body_mensaje,"From: $remitente");
        
header("Location: $web"); 
Así que lo he aplicado, y funciona! He puesto lo de "$web="http://www.tuweb.com/enviado.html";" en cualquier parte del código, más o menos donde intuyo que se puede poner, y luego he cambiado el final del código y he cambiado esto:

Código PHP:
if (@mail($email_destino$asunto$mensaje$headers))    
    {  
    
header ("Location : enviado.html");  


    }else{   
            echo 
"<h3>Sus datos contienen errores.</h3>";   
        }   
    } 

?> 
Por esto otro:

Código PHP:
if($formato == "html")  
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }  
   else  
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }  

if (@
mail($email_destino$asunto$mensaje$headers)) 

header("Location: $web"); 
}
?> 
Hay un útlimo problema xDD El contenido del mensaje. No me había dado cuenta, pero aquí:

Código PHP:
$mensaje          "texto introducido en el textarea"
No sé llamar a la ID del textarea del formulario =S Sólo eso y ya está!
  #39 (permalink)  
Antiguo 05/10/2008, 17:04
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

$mensaje = $_POST['mensaje'];
  #40 (permalink)  
Antiguo 05/10/2008, 17:16
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Bien, ha dejado de funcionar. Pero creo que es cosa de mi servidor, porque antes de modificar lo del $_POST['mensaje'];, ha dejado de funcionar.

¿Es posible que mi servidor tenga un límite o algo? Con el primer código que tuve, me pasó lo mismo. De repente, dejó de funcionar sin tocar nadie nada, cuando envié 50 correos de prueba, casi =S
  #41 (permalink)  
Antiguo 05/10/2008, 17:22
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

preguntaselo a los de tu servicio de hosting??

podria ser que si pero date cuenta de que cuando en el form el method="POST"

las variables se recuperan asi siempre segun el name del campo del form

$nombre = $_POST['nombre'];

Un saludo y suerte, que era mas facil de lo que decias

y una cosa mas

es lo mismo

Cita:
$web="http://www.tuweb.com/enviado.html";

mail($destinatario,$titulo,$body_mensaje,"From: $remitente");
header("Location: $web");
que esto

Cita:

mail($destinatario,$titulo,$body_mensaje,"From: $remitente");
header("Location: enviado.html");
a si que no entiendo que lo segundo no te funcione, pero mientras funcione.
pero es lo mismo
  #42 (permalink)  
Antiguo 05/10/2008, 17:33
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Esto es lo que he recopilado:

Código PHP:
<?php
$nombre_origen    
"Tuboolar Web";  
$email_origen     "[email protected]";  
$email_destino    $_POST['email'];   
$asunto           "Correo enviado desde Mipagina.com";  
$web              "http://www.mipagina.com/enviado.html";
$mensaje          $_POST['mensaje'];
$formato          "html";  

//*****************************************************************//  
$headers  "From: $nombre_origen <$email_origen> \r\n";  
$headers .= "Return-Path: <$email_origen> \r\n";  
$headers .= "Reply-To: $email_origen \r\n";  
$headers .= "X-Sender: $email_origen \r\n";  
$headers .= "X-Priority: 3 \r\n";  
$headers .= "MIME-Version: 1.0 \r\n";  
$headers .= "Content-Transfer-Encoding: 7bit \r\n";  

//*****************************************************************//  
   
if($formato == "html")  
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }  
   else  
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }  

if (@
mail($email_destino$asunto$mensaje$headers)) 

header("Location: $web"); 
}
?>
Y estos son los valores del formulario.

Código HTML:
<input name="email" id="email" value="Correo"
<input name="nombre" id="nombre" value="Nombre"
<textarea name="mensaje" id="mensaje"
He cambiado el formulario de PHP a otro servidor, y en el form:

<form action="formulario.php"

he puesto la dirección (obviamente) de la nueva página donde lo alojé:

<form action="http://www.segundapagina.com/formulario.php"

Ahí funciona, te lleva a "enviado.html" correctamente, pero no hay correo. He probado usando otra cuenta que no es de Gmail, y tampoco, y he trasladado el formulario.php a una tercera web en un tercer servidor distinto, y tampco.

Creo que, o todos los servidores se han puesto de acuerdo, o mis cuentas de correo no van, o he jodido algo xDDDDD

Espero haber terminado con esto el próximo año! Puede que este sea el formulario más difícil que nunca se haya hecho, porque no es normal xDDDDD
  #43 (permalink)  
Antiguo 05/10/2008, 17:57
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Ya está, paquete solucionado al 100%. Aquí os dejo el código final:

Código PHP:
<?php
$nombre_origen    
$_POST['nombre'];
$email_destino    "[email protected]";  
$email_origen     $_POST['email'];   
$asunto           "Correo enviado desde Mipagina.com";  
$web              "http://www.mipagina.com/enviado.html";
$body_mensaje     $_POST['mensaje']; 

//*****************************************************************//  
$headers  "From: $nombre_origen <$email_origen> \r\n";  
$headers .= "Return-Path: <$email_origen> \r\n";  
$headers .= "Reply-To: $email_origen \r\n";  
$headers .= "X-Sender: $email_origen \r\n";  
$headers .= "X-Priority: 3 \r\n";  
$headers .= "MIME-Version: 1.0 \r\n";  
$headers .= "Content-Transfer-Encoding: 7bit \r\n";  

//*****************************************************************//  
   
if($formato == "html")  
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }  
   else  
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }  

if (@
mail($email_destino$asunto$body_mensaje$headers)) 

header("Location: $web"); 
}
?>
Había algo de confusión con lo de "email_destino" y "email_origen", así que lo he arreglado (el email de destino, evidentemente, es mi cuenta de correo, no el remitente). Y también se ve que estaba mal lo que va después de "if (@mail(", al final del código.

Ya funciona, todo ok. Muchísimas y reiteradas gracias a todos por vuestra ayuda, en especial a jaronu!

En próximas entregas, preguntaré cómo hacer que se devuelva un correo de confirmación al usuario cuando se envíe su mensaje xDDDDD
  #44 (permalink)  
Antiguo 05/10/2008, 19:58
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Respuesta: Arreglar este formulario PHP

Cita:
Iniciado por Artdeco Ver Mensaje
Ya está, paquete solucionado al 100%. Aquí os dejo el código final:

Código PHP:
<?php
$nombre_origen    
$_POST['nombre'];
$email_destino    "[email protected]";  
$email_origen     $_POST['email'];   
$asunto           "Correo enviado desde Mipagina.com";  
$web              "http://www.mipagina.com/enviado.html";
$body_mensaje     $_POST['mensaje']; 

//*****************************************************************//  
$headers  "From: $nombre_origen <$email_origen> \r\n";  
$headers .= "Return-Path: <$email_origen> \r\n";  
$headers .= "Reply-To: $email_origen \r\n";  
$headers .= "X-Sender: $email_origen \r\n";  
$headers .= "X-Priority: 3 \r\n";  
$headers .= "MIME-Version: 1.0 \r\n";  
$headers .= "Content-Transfer-Encoding: 7bit \r\n";  

//*****************************************************************//  
   
if($formato == "html")  
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }  
   else  
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }  

if (@
mail($email_destino$asunto$body_mensaje$headers)) 

header("Location: $web"); 
}
?>
Había algo de confusión con lo de "email_destino" y "email_origen", así que lo he arreglado (el email de destino, evidentemente, es mi cuenta de correo, no el remitente). Y también se ve que estaba mal lo que va después de "if (@mail(", al final del código.

Ya funciona, todo ok. Muchísimas y reiteradas gracias a todos por vuestra ayuda, en especial a jaronu!

En próximas entregas, preguntaré cómo hacer que se devuelva un correo de confirmación al usuario cuando se envíe su mensaje xDDDDD

Al fin que bien, de verdad ya me estaba preocupando

Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
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 18:01.