Foros del Web » Programando para Internet » PHP »

mail() envía 1 mensaje en Firefox, 2 en Internet explirorer y 3 en Webkit

Estas en el tema de mail() envía 1 mensaje en Firefox, 2 en Internet explirorer y 3 en Webkit en el foro de PHP en Foros del Web. Hola. Es mi primer mensaje y lo primero que quiero decir es que este foro es de gran ayuda para gente aficionada como yo, y ...
  #1 (permalink)  
Antiguo 04/10/2011, 11:37
 
Fecha de Ingreso: octubre-2011
Mensajes: 4
Antigüedad: 13 años, 1 mes
Puntos: 0
mail() envía 1 mensaje en Firefox, 2 en Internet explirorer y 3 en Webkit

Hola. Es mi primer mensaje y lo primero que quiero decir es que este foro es de gran ayuda para gente aficionada como yo, y que me ha quitado horas de trabajo muchas veces.

Pero he topado con un muro difícil de saltar, ya que no encuentro en problema sobre esto:

Tengo un form muy simple que utiliza mail() para enviar información al admin. La cosa está en que obtengo resultados muy raros:

- En firefox me envía 1 mensaje (correcto).
- En IE me envía 2 mensajes idénticos de golpe.
- En Webkit (chrome y opera) me envía 3 mensajes idénticos de golpe.



Siempre es así.


El código para ver si algún experto me puede al menos indicar la vía por donde atacar:

Código PHP:
$getcontact $_GET['contacto'];
$getmail $_GET['email'];
$getphone $_GET['telefono'];
$gettext $_GET['mensaje'];

$email '---aquí va el mail dónde envío el mensaje---';
$subject 'Consulta de un usuario';
$mensaje '<div style="font-family: Arial, Helvetica, sans-serif;     font-size: 12px; line-height: 1.5em; color: #333333; width: 100%;"><div style="background-color:#CC0000; color:#FFFFFF; padding:6px; border:1px #000000 solid;">Consulta de un usuario</div>
<div style="padding:6px; border:1px #000000 solid">
  <p><strong>Nombre de la persona:</strong> '
.$getcontact.'</p>
  <p><strong>Email:</strong> '
.$getmail.'</p>
  <p><strong>Teléfono:</strong> '
.$getphone.' </p>
  <p><strong>Consulta:</strong></p>
  <p>'
.$gettext.'</p>
</div>
</div>'
;

$headers "From: ".$getmail."\n"// I suggest you try using only \n
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "Reply-To: ".$getmail."\n";

    
// Enviamos el mensaje
    
if (mail($email$subject$mensaje$headers)) {
        
$aviso "Tu mensaje ha sido enviado correctamente";
    } else {
        
$aviso "Error de envío";
    }

echo 
$aviso


Decir que el mensaje siempre llega, el sistema nunca falla y todo eso, pero me tiene mosca lo de los duplicados, y más que sea según el navegador utilizado.


Agradezco cualquier sugerencia.

Saludos
  #2 (permalink)  
Antiguo 04/10/2011, 11:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: mail() envía 1 mensaje en Firefox, 2 en Internet explirorer y 3 en Webkit

Si es por navegador, entonces dudo que tu problema sea el código PHP, más bien algún plugin de tu navegador es el que esta afectando, a lo mejor esta haciendo algún prefetching o similar.

Saludos.
  #3 (permalink)  
Antiguo 04/10/2011, 11:51
 
Fecha de Ingreso: octubre-2011
Mensajes: 4
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: mail() envía 1 mensaje en Firefox, 2 en Internet explirorer y 3 en Webkit

Eso he pensado yo. Pero cuando los clientes me envían consultas también pasa. Al ser PHP no veo que tenga que influir el navegador, pero es que la parte del HTML es muy simple:

Código PHP:
<table width="540" border="0" align="center" cellpadding="0" cellspacing="0">
    <
tr>
      <
td width="19" height="55" background="images/vinetas/amarillo_a1.gif">&nbsp;</td>
      <
td height="55" background="images/vinetas/amarillo_a2.gif" style="font-family:GOODDC__; font-size:40px;">Contactar con nosotros </td>
      <
td width="19" height="55" background="images/vinetas/amarillo_a3.gif">&nbsp;</td>
    </
tr>
    <
tr>
      <
td width="19" background="images/vinetas/amarillo_b1.gif">&nbsp;</td>
      <
td bgcolor="#FFE77D"><form method="get" action="">
        <
p>Puedes escribirnos a contacto@proyectoadopta.com o utilizar el siguiente formulario para tu comodidad. </p>
        <
p>
          <
label>Tu nombre
            
<input name="contacto" size="50" />
            </
label>
        </
p>
        <
p>
          <
label>Correo electr&oacute;nico
            
<input name="email" size="50" />
            </
label>
        </
p>
        <
p>
          <
label>Tel&eacute;fono
            
<input name="telefono" size="20" />
            </
label>
        </
p>
        <
p>
          <
label>Puedes a&ntilde;adir tu consulta aqu&iacute;<br />
            <
textarea name="mensaje" cols="60" rows="10"></textarea>
            </
label>
        </
p>
        <
p>
          <
input type="submit" name="submit" value="Enviar consulta" />
        </
p>
      </
form></td>
      <
td width="19" background="images/vinetas/amarillo_b3.gif">&nbsp;</td>
    </
tr>
    <
tr>
      <
td width="19" background="images/vinetas/amarillo_c1.gif">&nbsp;</td>
      <
td background="images/vinetas/amarillo_c2.gif">&nbsp;</td>
      <
td width="19" background="images/vinetas/amarillo_c3.gif">&nbsp;</td>
    </
tr>
  </
table
  #4 (permalink)  
Antiguo 04/10/2011, 12:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: mail() envía 1 mensaje en Firefox, 2 en Internet explirorer y 3 en Webkit

No hay ningún Javascript o algo similar que este influyendo en tu formulario?
  #5 (permalink)  
Antiguo 04/10/2011, 12:18
 
Fecha de Ingreso: octubre-2011
Mensajes: 4
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: mail() envía 1 mensaje en Firefox, 2 en Internet explirorer y 3 en Webkit

Cita:
Iniciado por GatorV Ver Mensaje
No hay ningún Javascript o algo similar que este influyendo en tu formulario?
No, es tan simple como se ve. Varios campos que al hacer clic en botón ejecuta una sentencia isset($_GET['submit']) y entonces entra en juego el PHP.

Es lo raro, que es la cosa más simple del mundo y no le veo pegas al código. Simplemente es un expediente X que no ocurre sólo en mi ordenador...
  #6 (permalink)  
Antiguo 04/10/2011, 12:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: mail() envía 1 mensaje en Firefox, 2 en Internet explirorer y 3 en Webkit

¿No que dices que también le pasa a tus clientes? Repito verifica que plugins tienes instalados ya que es probable que ahí este la causa, los "aceleradores", etc, causan esos problemas.

También te recomiendo que tu formulario lo proceses por POST en lugar de GET.

Saludos.
  #7 (permalink)  
Antiguo 04/10/2011, 14:42
 
Fecha de Ingreso: octubre-2011
Mensajes: 4
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: mail() envía 1 mensaje en Firefox, 2 en Internet explirorer y 3 en Webkit

Bueno, he dado con el origen del problema.

Al parecer el hecho de tener action="", así vacío, genera el problema. También he aprovechado para cambiar el method a POST como bien me recomendabas, para que sea más limpio.

Etiquetas: firefox, html, internet, mail, mensaje, webkit, usuarios
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 12:57.