Foros del Web » Programando para Internet » PHP »

Reenvio de mail sin sentido

Estas en el tema de Reenvio de mail sin sentido en el foro de PHP en Foros del Web. Hola, tengo un problema muy particular: Tengo un sitio en el cual las personas (usuario1) publican sus plegarias, otros usuario pueden responder la plegaria, con ...
  #1 (permalink)  
Antiguo 30/01/2011, 09:52
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Reenvio de mail sin sentido

Hola, tengo un problema muy particular:
Tengo un sitio en el cual las personas (usuario1) publican sus plegarias, otros usuario pueden responder la plegaria, con lo cual lo hago con jquery e invoco un php que dado el id de la plegaria, el texto y el usuario que esta logueado (usuario2), envia un mail al usuario que cargo la plegaria para avisarle (usuario1).
El formato del mail que se le envia al usuario1 es algo asi:

Nickusuario2 te envio un mensaje en tu plegaria:

Plegaria que escribio el usuario1

Logueate haciendo click acá para ver la respuesta.

-------------------

El mail llega perfecto, pero el problema es que horas despues vuelve a llegar un mail casi igual, la unica diferencia que tiene es que el texto de la plegaria "plegaria que escribio el usuario1" está vacio.

Hice 2 pruebas de una cuenta1 a una cuenta2 y viceversa, y me llegaron bien los mails con unos minutos de diferencia cada uno, y luego de 3 hs me llegaron 2 mails a cada cuenta exactamente a la misma hora.

Ahora unos detalles para tener en cuenta tambien, es que:
1. En la base solo se agrega la entrada una sola vez
2. Esa misma pagina que envia el mail, unas lineas antes le envia tambien un mail al administrador avisandole que alguien envio un comentario para que lo revise y este mail solo llega la primera vez.
3. al comienzo de la pagina chequeo que el usuario este logueado y que tanto la variable del id de plegaria como la del texto que se le envia existan y sean algo coherente, sino corta ahi mismo....
4. Yo baraje la posibilidad que sea un bot pero solo llega el mail con la plegaria vacia si es que se envio una respuesta, sino no llega nada.

Espero puedan ayudarme, si necesitan publico el codigo pero creo que explique su funcionamiento y no me parece problema del codigo sino de alguna tecnica de seguridad o algo que deba hacer...

Gracias
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.
  #2 (permalink)  
Antiguo 30/01/2011, 10:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Reenvio de mail sin sentido

Verifica si tienes algun codigo que se ejecute cada cierto tiempo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 30/01/2011, 10:14
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Reenvio de mail sin sentido

si, pero no que toque esa pagina, y como dije, realizo chequeos antes de enviar los mails, y en todo caso tambien deberian de llegar los mail al administrador y agregar una nueva entrada en la base...

Sinceramente no se me ocurre que puede ser...
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.
  #4 (permalink)  
Antiguo 30/01/2011, 10:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Reenvio de mail sin sentido

Tienes algun cronjob?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 30/01/2011, 10:24
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Reenvio de mail sin sentido

no, los chequeos que hago son manuales o cuando alguien realiza alguna solicitud, no con timer ni nada...
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.
  #6 (permalink)  
Antiguo 30/01/2011, 10:49
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Reenvio de mail sin sentido

Sinceramente de esa forma no te podemos ayudar. Verifica el código y hazlo desde lo más sencillo hasta que quede como tu quieres, tal vez la lógica está mal planteada y por eso lo repite.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 30/01/2011, 11:41
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Reenvio de mail sin sentido

Les paso el codigo, ya que no es muy complicado...


<?php
require('Connections/productdata.php');
require_once('classes/mysql_class.php');
$db = new mysql_dialog();
$db->connect($hostnameP, $usernameP, $passwordP, $databaseP);


if(!isset($_GET['id']) || !isset($_GET['texto']) || trim($_GET['texto'])==''){
echo 'no';
exit;
}

if (!isset($_SESSION)) session_start();
if(!isset($_SESSION['aaaaa'])){//verifico si esta creada la session del usuario
echo 'no';
exit;
}
$id_miembro=$_SESSION['aaaaa'];
$texto=addslashes(strip_tags(trim($_GET['texto'])));
$id_plegaria=intval($_GET['id']);

$SQL="SELECT id_miembro,texto FROM plegarias WHERE id_plegaria='$id_plegaria'";
$db->speak($SQL);
$data=$db->listen();
if(!$data){
echo 'no';
exit;
}
$id_duenoPlegaria=$data['id_miembro'];
$involucrados="$id_miembro,$id_duenoPlegaria";
$plegaria=stripslashes($data['texto']);

//Me fijo si lo habia bloqueado para no mandarle nada.
$SQL="SELECT id_parbloqueado FROM bloqueados WHERE id_bloqueado='$id_miembro' AND id_bloqueador='$id_duenoPlegaria'";
$db->speak($SQL);
$data=$db->listen();
if($data){
echo 'yes';
exit;
}


$SQL="INSERT INTO comentarioxplegaria (id_plegaria,id_miembro,comentario,involucrados)
VALUES ('$id_plegaria','$id_miembro','$texto','$involucra dos')";
$db->speak($SQL);
$data=$db->listen();

echo $db->errors;
if($db->errors==''){
require_once('classes/miembro.php');
$memPostea=new miembro($id_miembro);
$memPlegaria=new miembro($id_duenoPlegaria);

require_once('classes/notificaciones.php');
$not=new notificacion();


$texto=stripslashes($texto);

@$not->emailToAdmin('New Comment','A new comment has been post on Prayer:<br> '.$memPostea->getNick().': '.$texto.' <br><br>'.$memPlegaria->getNick().' On: '.$plegaria.'<br><br> Log in to <a href="http://www.mybrokenpalace.com/admin/login.php">My Broken Palace</a> to read and approve the message');

$asunto='Comment - My Broken Palace';
$cuerpo='<p>'.$memPostea->getNick().', has sent you a comment on the prayer:<p>
<p>'.$plegaria.'</p>
<p> Log in to <a href="http://www.mybrokenpalace.com/login.php">My Broken Palace</a> to read the message</p>
';

$to=$memPlegaria->getEmail();
@$not->emailFromMBPToUser($to,$asunto,$cuerpo);

echo 'yes';
exit;
}
echo 'no';

?>



El que se repite es el emailFromMBPToUser pero como si la variable "$plegaria" estuviese vacia.
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.

Etiquetas: mail-php, reenvia, vacio
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 10:36.