Foros del Web » Programando para Internet » PHP »

enviar.php

Estas en el tema de enviar.php en el foro de PHP en Foros del Web. 1- Resulta que tengo creado el boton enviar.php en mi página web y cuando es presionado manda 2 veces el mismo mensaje en forma instantánea. ...
  #1 (permalink)  
Antiguo 05/02/2009, 05:29
 
Fecha de Ingreso: octubre-2008
Mensajes: 14
Antigüedad: 11 años, 2 meses
Puntos: 0
enviar.php

1- Resulta que tengo creado el boton enviar.php en mi página web y cuando es presionado manda 2 veces el mismo mensaje en forma instantánea. ¿Cómo se puede resolver?

2- También tengo el problema y no se si con el mismo archivo lo debo arreglar. Es que quisiera que la persona que escriba complete los campos correctamente. O sea en mail que por lo menos alla un @ más allá que pueda ser falsa la dirección y que los 4 campos que tengo en la página esten completos.

este es el link de contacto de mi página (es sencillo) http://www.fundacionsinapsis.org.ar/contacto.html

A continuación copio el código del enviar.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<?
$nombre = $_POST['nombre'];
$mail = $_POST['email'];
$empresa = $_POST['asunto'];

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por " . $nombre . ", por el siguiente asunto" . $asunto . " \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Contacto desde Sinapsis Web';

mail($para, $asunto, utf8_decode($mensaje), $header);

if (mail($para, $asunto, utf8_decode($mensaje), $header)) {
include ("mensajeenviado.html");
} else {
include ("mensajenoenviado.html");
}
echo 'Mensaje enviado con éxito';
?>
<body>
</body>
</html>


saludos y gracias.
Carlos

Pd: mandame por contacto que opinas de la página de paso. Mi idea es que sea sencilla y precisa. Algo seria dado que es una Fundación.
  #2 (permalink)  
Antiguo 05/02/2009, 05:40
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 15 años, 1 mes
Puntos: 48
Respuesta: enviar.php

Cita:
mail($para, $asunto, utf8_decode($mensaje), $header);

if (mail($para, $asunto, utf8_decode($mensaje), $header)) {
2 llamadas a mail, 2 emails enviados. Supongo que se te olvido quitar el de antes del if.
  #3 (permalink)  
Antiguo 05/02/2009, 06:36
 
Fecha de Ingreso: octubre-2008
Mensajes: 14
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: enviar.php

perdona que pregunte, pero me parece lo mismo a lo que tengo anotado o no entiendo donde va. Te pregunto porque en realidad de PHP no se nada, de suerte que aprendi a hacer diseño web con dreamweaver y dibujos con el fireworks.

gracias por tu pronta ayuda
  #4 (permalink)  
Antiguo 05/02/2009, 08:02
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: enviar.php

Lo que pasa es que estas llamando 2 veces la funcion mail en tu codigo solo pon:

if (mail($para, $asunto, utf8_decode($mensaje), $header)) {
esto te sobra
mail($para, $asunto, utf8_decode($mensaje), $header);

suerte...
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
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 11:08.