Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/10/2011, 14:07
Avatar de pzehle
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!!