Foros del Web » Programando para Internet » PHP »

formulario de contacto: quiero cambiar algo y no funciona

Estas en el tema de formulario de contacto: quiero cambiar algo y no funciona en el foro de PHP en Foros del Web. Hola, tengo este PHP para enviar mails, pero hay algo que todavia no logro entender, el codigo del PHP es este Código: <?php $to = ...
  #1 (permalink)  
Antiguo 18/06/2006, 15:31
 
Fecha de Ingreso: agosto-2004
Mensajes: 113
Antigüedad: 13 años, 3 meses
Puntos: 0
formulario de contacto: quiero cambiar algo y no funciona

Hola, tengo este PHP para enviar mails, pero hay algo que todavia no logro entender, el codigo del PHP es este
Código:
<?php
$to = '[email protected]';
$from = $email;

if (isset($HTTP_POST_VARS)){

$body = '';

while (list($key, $value) = each($HTTP_POST_VARS)){
$body .= $key . ' : ' . $value . "
";
}
$headers = "From: $nombre <$email>";
$success = mail($to, "Asunto con el que llega", $body, $headers);
echo "<center><font color='#999999' size='1px' face='Verdana'>Su consulta ha sido enviada. Gracias</font></center>";
}
?>
la parte que no logro entender, me parece que no es segura, es esta
Código:
if (isset($HTTP_POST_VARS)){

$body = '';

while (list($nombre, $email, $mensaje, $value) = each($HTTP_POST_VARS)){
$body .= $key . ' : ' . $value . "
";
}
porque si bien el correo se manda llega de esta manera;
Código:
nombre : nombre del que envia
email : email del que envia
mensaje : el mensaje 
Submit : enviar (esto no tendria que aparecer)
Se que el correo llega de esa manera porque asi lo define esta parte del codigo
Código:
while (list($key, $value) = each($HTTP_POST_VARS)){
$body .= $key . ' : ' . $value . "
";
Lo que no me sale en fin es como cambiar esa parte del codigo asi, de esa manera, poder armar el mensaje que llega de otra forma.
Ya probe cambiar el $key por $nombre $email $mensaje pero los correos llegan vacios y el Submit :enviar sigue apareciendo.
¿Como cambio ese parte del codigo para que siga funcionando y sea mas seguro?
Gracias
Saludos
  #2 (permalink)  
Antiguo 18/06/2006, 17:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
Puedes agregar un chequeo:
Código PHP:
if( $key == "Submit" ) continue; 
antes del $body .= $key...

para que "brinque" el Submit.
  #3 (permalink)  
Antiguo 18/06/2006, 18:40
 
Fecha de Ingreso: agosto-2004
Mensajes: 113
Antigüedad: 13 años, 3 meses
Puntos: 0
hola Gatorv, funciono muchas gracias, el mail llega como antes pero sin ese Submit : enviar que quedaba feo.
Otra cosa que estuve probando hacer era darle un formato mas de texto al mensaje que se enviaba, poniendo esto
Código:
while (list($nombre, $email, $mensaje) = each($HTTP_POST_VARS)){
$body .= $nombre '('$email')'' le a enviado un mensaje desde www.estesitio.com.ar el dia' . date("m/d/Y")'.<br> Mensaje:' $mensaje 
'<br>www.estesitio.com.ar' "";
}
en lugar de esto
Código:
while (list($key, $value) = each($HTTP_POST_VARS)){
$body .= $key . ' = ' . $value . "
";
}
pero ahi el mensaje no se manda
Yo pensaba que si nombraba las variables en lugar del $key, $value el mensaje se iba a mandar igual y con el formato que yo le quisiera dar pero no, no quiso andar.
¿hay algun error muy grosero en el codigo o simplemente eso no se puede?
gracias de antemano
saludos
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 15:37.