Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Problema con recuperar contraseña

Hola. De nuevo la de siempre...

Estoy con el tema de recuperar las contraseñas. Creo que he hecho bien todos los pasos, pero no hay manera de que pueda recibir el correo con el link para el paso 3. Pongo mi código por si alguien ve el fallo que yo soy incapaz de ver. Mi tabla se llama users y los campos son recuperar, email y conexion. Aclaro que la direccion de la url en recuperar y recuperar_2 es correcta y que recibo en la base de datos la contraseña en el campo recuperar. todo va bien, solo que no me llega el email. He puesto mi dirección de correo verdadera.

function generar_password($email)
{
global $conexion, $database_conexion;

$cdnrecuperacion = substr(md5(rand()*time()),0,30);
$updateSQL = sprintf("UPDATE users SET recuperar=%s WHERE email=%s",
GetSQLValueString($cdnrecuperacion, "text"),
GetSQLValueString($email, "text"));
$Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());

$para = $email;
$asunto = 'Recuperacion Password';
$mensaje.='Para recuperar tu password utiliza este link:<br>
<a href="http://relatilandia.com/users/recuperar_3.php?email='.$email.'&id='.$cdnrecuperacion.'">http://relatilandia.com/users/recuperar_3.php?email='.$email.'&id='.$cdnrecuperacion.'</a>';

$cabeceras = 'MIME-Version: 1.0' . "\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\n";

$cabeceras .= 'From: nocontestar@relatilandia.com' . "\n";

$para=$email;
mail($para, $asunto, $mensaje, $cabeceras);

}


$varrecuperar_recuperarDos = "0";
if (isset($_POST["recuperar"])) {
$varrecuperar_recuperarDos = $_POST["recuperar"];
}
mysql_select_db($database_conexion, $conexion);
$query_recuperarDos = sprintf("SELECT * FROM users WHERE users.email = %s", GetSQLValueString($varrecuperar_recuperarDos, "text"));
$recuperarDos = mysql_query($query_recuperarDos, $conexion) or die(mysql_error());
$row_recuperarDos = mysql_fetch_assoc($recuperarDos);
$totalRows_recuperarDos = mysql_num_rows($recuperarDos);
?>




<?php if ($totalRows_recuperarDos ==1) {

generar_password($_POST["recuperar"]);
echo "Te hemos enviado un correo con la nueva contraseña";
}
else {
echo "No existe";

}
?>
0
Puntos
1570
Visitas
2
Resp
Por LuzEsmeralda hace 127 meses
Principiante
Respuesta #1
Resuelto el problema. Por lo visto en mi cuenta no tengo carpeta de correo no deseado o spam y ese es justo el lugar donde han ido los correos.
0
Puntos
Por LuzEsmeralda hace 127 meses
Principiante
Respuesta #2
es la pega que tiene la función mail de php que en las cuentas de hotmail casi todos los correos acaban en la carpeta no deseado aunque la verdadera culpa es de hotmail por que los considera como spamm.

hay mas opciones puedes instalar tu propio servicio de correo o también puedes toquetear un poco la función que ya tienes e ir probando http://php.net/manual/es/function.mail.php
0
Puntos
Por zeuskx hace 127 meses
Administrador Sitio web
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate