Foros del Web » Programando para Internet » PHP »

Formulario erroneo

Estas en el tema de Formulario erroneo en el foro de PHP en Foros del Web. Tengo un archivo php con este contenido: <html> <head> <title>Formulario</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#666666"> <? if (($nombre) && ($mail) && ($asunto) && ...
  #1 (permalink)  
Antiguo 26/02/2004, 06:35
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 14 años, 6 meses
Puntos: 1
Formulario erroneo

Tengo un archivo php con este contenido:

<html>
<head>
<title>Formulario</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#666666">
<?

if (($nombre) && ($mail) && ($asunto) && ($mensaje) && ($submit)) {

$tuemail = "[email protected]";

mail($tuemail,$asunto,$mensaje,"From: $mailrnReply-To: $mailrn" ) ;

echo "<b>E-Mail enviado con éxito</b><br>";

}


?>
<form method="post" action="email.php">
<font size="2">Tu nombre:
<input type="text" name="nombre">
<br>
Tu email:
<input type="text" name="mail">
<br>
Asunto:
<input type="text" name="asunto">
<br>
Mensaje:
<input type="text" name="mensaje">
<br>
</font>
<input type="submit" value="Enviar" name="submit">
</form>
</body>
</html>


- El caso es que al recibirlo me pone como emisor, esto: "-To:"@uk-web-3.m2kcore.com . No me sale ni el nombre ni la dirección que previamente se ha introducido.
¿Dónde está el fallo?

- ¿Cómo puedo hacer para quitar la casilla de "asunto" y poder poner yo mismo el asunto que quiera, sin que se pueda modificar?

Soy un poco negao con el PHP asi que con calma porfavor

Última edición por wesse; 18/12/2007 a las 06:02
  #2 (permalink)  
Antiguo 26/02/2004, 08:02
 
Fecha de Ingreso: febrero-2004
Ubicación: Bs. As. - Argentina
Mensajes: 53
Antigüedad: 13 años, 10 meses
Puntos: 0
El problema esta cuando ejecutas:
mail($tuemail,$asunto,$mensaje,"From: $mailrnReply-To: $mailrn");

Mas precisamente en el ultimo parametro:
"From: $mailrnReply-To: $mailrn"

Fijate que PHP ve dos variables dentro del string:
$mailrnReply y $mailrn

Ambas variables estan sin inicializar, por lo que el string resultante es:
"From: -To: "

La forma correcta seria:

"From: $mail Reply-To: $mail"

En este caso estoy usando la variable $mail que te llega desde el formulario. Tambien debes notar el espacio entre $mail y Reply-To.

Tambien te sugiero que utilices las variables superglobales $_GET y $_POST para obtener los valores de un formulario.

En cuanto al asunto, simplemente no le des la opcion al usuario de completarla, y cuando ejecutas mail le pones el string que deseas.
__________________
Saludos!
  #3 (permalink)  
Antiguo 26/02/2004, 08:10
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Es el problema de copiar/pegar codigo sin entender que es cada cosa

El rn ese que te aparece es en realidad \r\n , un salto de linea.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 26/02/2004, 08:21
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 14 años, 6 meses
Puntos: 1
josemi, te juro que e intentado aprender php.. pero creo que es completamente imposible!! jajajaja.
La cosa es que lo necesito cuanto antes... y viendo tutoriales... no se que avance yo mucho... :D
  #5 (permalink)  
Antiguo 26/02/2004, 11:02
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 14 años, 6 meses
Puntos: 1
he probado las dos formas y sigue sin funcionarme
  #6 (permalink)  
Antiguo 26/02/2004, 12:50
 
Fecha de Ingreso: febrero-2004
Ubicación: Bs. As. - Argentina
Mensajes: 53
Antigüedad: 13 años, 10 meses
Puntos: 0
Aque te refieres con "las dos formas" y que error te tira cada una de ellas.
__________________
Saludos!
  #7 (permalink)  
Antiguo 26/02/2004, 13:18
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bueno, revisa http://www.php.net/manual/en/function.mail.php .

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 28/03/2004, 07:58
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 14 años, 6 meses
Puntos: 1
Josemiiiiiiiiiiiii andas por ahi??

Despues de tanto tiempo he conseguido arreglarlo...

a ver... Tal como me dijistes, arregle lo del r\n\ y el codigo quedó asi:

<?

if (($nombre) && ($mail) && ($asunto) && ($mensaje) && ($submit)) {

$tuemail = "[email protected]";

mail($tuemail,$asunto,$mensaje,"From: $mail\r\n Reply-To: $mail\r\n" ) ;

echo "<b>E-Mail enviado con éxito</b><br>";

}


?>

El caso es que al probarlo con ese código, cuando me llegaban los emails a mi cuenta, en el remitente me ponía:
Reply-To: email de la persona, sin la @ y sin dominio)

Dentro del mensaje me ponia:
Emisor: [email protected], "Reply-To:emaildelapersona"@hotmail.com

Así que probé a quitar eso de Reply-To: $mail\r\n del código.
Pues bien, resulta que ahora si me llegan bien los emails! En el emisor me sale la dirección completa, me llega el asunto, el contenido y el email destinatario (yo)

Me gustaría saber que es eso del reply-to, ya que con eso no me va bien y sin el si me funciona.
También me gustaría saber cómo puedo hacer para que el email me llegue con un asunto escrito por mi, sin que se pueda modificar.

Y ya por ultimo, y por curiosidad... a través de que se manda el email? ya que no hay ninguna dirección email que haga de intermediario... ays que complicado es esto del php...

bueno, y saludoooooooooooooooo

Última edición por wesse; 18/12/2007 a las 06:02
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:47.