Foros del Web » Programando para Internet » PHP »

Problema con MAIL doble en PHP

Estas en el tema de Problema con MAIL doble en PHP en el foro de PHP en Foros del Web. Hola!! Pues tengo un problema que espero me puedan ayudar... Lo que pasa es que estoy haciendo un pequeño sitio donde se registran usuario y ...
  #1 (permalink)  
Antiguo 19/10/2011, 14:07
Avatar de pzehle  
Fecha de Ingreso: octubre-2011
Ubicación: Naucalpan
Mensajes: 5
Antigüedad: 12 años, 6 meses
Puntos: 0
Problema con MAIL doble en PHP

Hola!! Pues tengo un problema que espero me puedan ayudar... Lo que pasa es que estoy haciendo un pequeño sitio donde se registran usuario y demás, pero surgió un problema al crear la parte de "recuperar la contraseña" pues al momento de darle recuperar todo sale bien pero en vez de mandarse un solo mail al correo, se mandan dos y no entiendo porque... Ya le di mil vueltas al código y ya hasta lo volví a hacer pero no logro encontrar cual es el problema... Posteo el código:

Este es el Formulario:

<form name="recuperacion" action="recuperacion.php">
<table width="80%" border="0" cellpadding="2" cellspacing="0" bgcolor="#CCCCCC" align="center">
<tr>
<td width="35%" align="right">Correo Electrónico:</td>
<td width="45%" align="left"><input name="r_correo" id="r_correo" type="text" class="campo_formulario" maxlength="30" /></td>
</tr>
<tr>
<td width="80%" align="right" colspan="2"><input name="recuperar" id="recuperar" class="boton_formulario" type="submit" value="Recuperar" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;</td>
</tr>
</table>
</form>
<br />
<br />
<div align="center">
<p id="recuperando"><label id="respuesta_recuperacion" class="respuesta_recuperacion"></label></p>
</div>

Este es el código AJAX:

$(function(){
$('#recuperar').click(function(){
$('#respuesta_recuperacion').remove();
$('#recuperando').append('<label id="respuesta_recuperacion" class="respuesta_recuperacion"><img src="../Imagenes/loader.gif" />&nbsp;Cargando...</label>');
var r_correo = $('#r_correo').val();
$.ajax({
url: 'recuperacion.php',
type: 'POST',
data: 'r_correo=' + r_correo,
success: function(resultado_recuperar) {
$('#respuesta_recuperacion').remove();
$('#recuperando').append('<label id="respuesta_recuperacion" class="respuesta_recuperacion">' + resultado_recuperar + '</label>');
}
});
return false;
});
});

Y este es el PHP que procesa todo:

<?
include("conexion.php");
$correo=$_POST['r_correo'];
$usuarios=mysql_query("SELECT * FROM usuarios WHERE correo = '$correo'",$conn);
$total_resultados=mysql_num_rows($usuarios);
function ValidaMail($correo) {
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$", $correo ) ) {
return true;
} else {
return false;
}
}
if(empty($correo)){
echo "Debes escribir tu dirección de correo electrónico.";
}else if(ValidaMail($correo) == false){
echo "La dirección de correo electrónico no es válida.";
}else if($total_resultados == 0){
echo "La dirección de correo electrónico no está en la base de datos.";
}else{
$row=mysql_fetch_array($usuarios);
$nombres=$row['nombres'];
$apellidos=$row['apellidos'];
$usuario=$row['usuario'];
$contrasena=$row['contrasena'];
$nombre= $nombres . " " . $apellidos;
$asunto="Recuperación de Contraseña.";
$cuerpo= "
<html>
<head>
<title>$asunto</title>
<style>
.texto {
font-family: Century Gothic, Arial;
}
a {
color: #910000;
text-decoration: none;
}
a:hover {
color: #910000;
text-decoration: underline;
}
</style>
</head>
<body>
<table align='center' width='70%' bgcolor='#CCCCCC'>
<tr>
<td align='center' colspan='2' width='70%'><img src='http://www.profesionalmlm.com/logotipo.png' width='150' /></td>
</tr>
<tr>
<th align='center' width='70%' colspan='2'>INFORMACIÓN DE TU CUENTA</th>
</tr>
<tr>
<td align='right' width='35%'><b>Nombre:</b></td>
<td align='left' width='35%'>$nombre</td>
</tr>
<tr>
<td align='right' width='35%'><b>Usuario:</b></td>
<td align='left' width='35%'>$usuario</td>
</tr>
<tr>
<td align='right' width='35%'><b>Contraseña:</b></td>
<td align='left' width='35%'>$contrasena</td>
</tr>
<tr>
<font size='2'>
<td align='center' width='70%' class='texto' bgcolor='#FFFFFF' colspan='2'><a href='http://www.profesionalmlm.com'>Profesional MLM</a></td>
</font>
</tr>
</table>
</body>
</html>
";
$remitente="[email protected]";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: Soporte Profesional MLM <$remitente>\r\n";
$headers .= "Reply-To: $remitente\r\n";
$headers .= "Return-path: $remitente\r\n";
mail($correo,$asunto,$cuerpo,$headers);
echo "Se ha enviado tu contraseña a tu cuenta de correo electrónico.";
}
?>



Lo que no logro entender es que en otro sistema tengo casi el mismo código pero no me crea doble el mail... Pueden revisarlo también en www.profesionalmlm.com/recuperar_contrasena.php
De antemano muchas gracias!!
  #2 (permalink)  
Antiguo 19/10/2011, 23:07
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con MAIL doble en PHP

Lo unico que se me ocurre es:
1- El usuario hace doble click en el boton enviar, pero necesariamente agregaria dos registros.
2- Tienes por ahi algun include o include_once que hace que se procese nuevamente el formulario.

Ahora, algunas notas:
1- Se desaconseja el uso de <? porque no en todos los servidores esta activa la opcion de short_tags, en su lugar usa siempre <?php
2- Las funciones ereg* son obsoletas, deberias usar preg*
3- Sabias que con un poco de CSS te ahorrarias esa barbaridad de poner tanto &nbsp; para "crear margenes" en tu diseño?
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 24/10/2011, 09:38
Avatar de pzehle  
Fecha de Ingreso: octubre-2011
Ubicación: Naucalpan
Mensajes: 5
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema con MAIL doble en PHP

Pues mira muchas gracias por tu respuesta! Pero ya intente con todo lo que me dijiste y se sigue mandando doble el mail... Alguna otra sugerencia? Muchas gracias!
  #4 (permalink)  
Antiguo 24/10/2011, 11:43
Avatar de kakashi20  
Fecha de Ingreso: septiembre-2009
Mensajes: 616
Antigüedad: 14 años, 7 meses
Puntos: 15
Respuesta: Problema con MAIL doble en PHP

usa un

if(isset($variable)){

}

y dentro del if mandas el email
  #5 (permalink)  
Antiguo 24/10/2011, 12:08
Avatar de pzehle  
Fecha de Ingreso: octubre-2011
Ubicación: Naucalpan
Mensajes: 5
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema con MAIL doble en PHP

Gracias por tu respuesta!! Lo acabo de intentar como me dijiste, pero sigue mandando 2 correos... Otra sugerencia?
  #6 (permalink)  
Antiguo 24/10/2011, 12:46
Avatar de pzehle  
Fecha de Ingreso: octubre-2011
Ubicación: Naucalpan
Mensajes: 5
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema con MAIL doble en PHP

Muchas gracias a todos pero ya logre encontrar el problema... Estaba haciendo una doble llamada al script donde tengo el AJAX, un poco tonto yo verdad? Muchisimas gracias y perdón por quitarles el tiempo!! Saludos

Etiquetas: ajax, javascript, php+ajax
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 01:21.