Foros del Web » Programando para Internet » PHP »

Mail se envía 2 veces

Estas en el tema de Mail se envía 2 veces en el foro de PHP en Foros del Web. Hola a todos. Tengo el siguiente problema: Tengo una página de confirmación de un autorespondedor, donde necesito que se envíe un email a la persona ...
  #1 (permalink)  
Antiguo 27/09/2010, 11:34
Avatar de NacHox  
Fecha de Ingreso: enero-2005
Mensajes: 25
Antigüedad: 19 años, 3 meses
Puntos: 1
Mail se envía 2 veces

Hola a todos.

Tengo el siguiente problema: Tengo una página de confirmación de un autorespondedor, donde necesito que se envíe un email a la persona que invitó al suscriptor (avisandole que tiene un nuevo suscriptor).

Este es el proceso:

Pepito llega a www.miweb.com/?id=nacho y deja su nombre y email. Cuando confirma la suscripcion, le llega un correo a nacho (porque id=nacho y esto se guarda en una cookie para saber que es nacho quien lo refirio) avisandole que tiene un nuevo suscriptor.

El problema es que llega 2 veces el mismo correo a nacho. No se si el autorespondedor recarga la página (ya que te envian un link personalizado a tu correo para confirmar la suscripcion el cual redirecciona a la pagina de mi script) o el problema es mio.

Se podrá establecer que el correo se envie solo 1 vez? y como? O es un problema mio del codigo?

Este es el codigo que hace lo mencionado:

Código PHP:
<? 
$HTTP_COOKIE_VARS
["idUsuario"];

include(
"con.php");
$link=Conectarse();

$sql mysql_query("SELECT nombre,email,nick FROM afiliados WHERE nick = '$idUsuario'");
$fila=mysql_fetch_array($sql);
$destinatario=$fila[email];
$nombre=$fila[nombre];
$nick=$fila[nick];

$headers "From: [email protected]";
$message .= "
Hola $nombre!

Este correo es para avisarte que ha llegado un nuevo suscriptor"
;

mail("$destinatario""Tienes un nuevo suscriptor!"$message$headers);

?>
Llevo dias viendo que podrá ser, agradezco enormemente a quien pueda ayudarme.

Saludos.
  #2 (permalink)  
Antiguo 27/09/2010, 12:20
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Mail se envía 2 veces

Hola NacHox, el código que publicas no es suficiente, es necesario ver el código de la página donde se ejecuta este script. En este ejemplo sólo lo envías una vez, pero no sabemos cómo funciona el resto de la aplicación. A ver si puedes postear más código, un saludo
  #3 (permalink)  
Antiguo 27/09/2010, 12:45
Avatar de NacHox  
Fecha de Ingreso: enero-2005
Mensajes: 25
Antigüedad: 19 años, 3 meses
Puntos: 1
Respuesta: Mail se envía 2 veces

Ese es todo el código que se ejecuta en la página de confirmación para el suscriptor.

Entonces si eso está bien, tendré que buscar una forma de decirle al script que solo se envíe 1 vez... pero como? alguna idea o sugerencia?
  #4 (permalink)  
Antiguo 27/09/2010, 12:55
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Mail se envía 2 veces

ok, sigo pensando que tu código está bien

Código PHP:
<?php

$HTTP_COOKIE_VARS 
["idUsuario"];

include (
"con.php");
$link Conectarse ();

$sql mysql_query "SELECT nombre,email,nick FROM afiliados WHERE nick = '".$HTTP_COOKIE_VARS ["idUsuario"]."'" );
$fila mysql_fetch_array $sql );
$destinatario $fila ['email'];
$nombre $fila ['nombre'];
$nick $fila ['nick'];

$headers "From: [email protected]";
$message "
Hola $nombre!

Este correo es para avisarte que ha llegado un nuevo suscriptor"
;

mail $destinatario"Tienes un nuevo suscriptor!"$message$headers );

?>
Este código envía mail una vez, por lo tanto, si tú has comprobado que te llegan dos mensajes:
1. Comprueba que $destinatario sólo contiene una dirección, haz un echo o algo.
2. Asegúrate que el script se ejecuta una sola vez, este parece ser el problema. Por algún motivo, llamas a este script dos veces. Si este scritp está siendo incluído por otro, incluyelo con require_once() de manera que sólo lo haga una vez.

A ver si te sirve la pista, salu2
  #5 (permalink)  
Antiguo 27/09/2010, 15:06
Avatar de NacHox  
Fecha de Ingreso: enero-2005
Mensajes: 25
Antigüedad: 19 años, 3 meses
Puntos: 1
Respuesta: Mail se envía 2 veces

Muchas gracias repara2 por tus consejos e ideas.

Al final pienso que debe ser fallo del autorespondedor (GetResponse.com) que recarga la pagina 2 veces, ya que he hecho varias pruebas, incluso separé el script y lo incluí con require_once() y pasó lo mismo.

Los links de confirmación que Getresponse genera y envía al suscriptor para confirmar son asi: http://getresponse.com/confirm.html?x=a62b&sq=GwWkO&y=O&

Entonces ese link es el que redirecciona finalmente a la pagina felicitaciones.php que es donde está el script.

Lo mas probable es que en el camino de la redirección carga la página 2 veces.

A ver que puedo hacer, seguiré viendo una solución (tal vez el mismo Getresponse tenga alguna configuración para evitar esto).

Saludos, y nuevamente gracias.

Etiquetas: email.envio, mail()
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 14:43.