Código PHP :
... $usuario = mysql_real_escape_string($_POST['usuario']); $usuario = trim($usuario); $sql = mysql_query("SELECT usuario, pass, email FROM usuario WHERE usuario='".$usuario."'") or die(mysql_error()); if(mysql_num_rows($sql)) { $row = mysql_fetch_array($sql); $num_caracteres = "10"; // asignamos el número de caracteres que va a tener la nueva contraseña $nueva_clave = substr(md5(rand()),0,$num_caracteres); // generamos una nueva contraseña de forma aleatoria $usuario = $row['usuario']; $pass = $nueva_clave; // la nueva contraseña que se enviará por correo al usuario $pass2 = md5($pass); // encriptamos la nueva contraseña para guardarla en la BD $usuario_email = $row['email']; // actualizamos los datos (contraseña) del usuario que solicitó su contraseña mysql_query("UPDATE usuario SET pass='".$pass2."' WHERE usuario='".$usuario."'"); // Enviamos por email la nueva contraseña $remite_nombre = "Miguel Calla Uceda"; // Tu nombre o el de tu página $remite_email = "[email protected]"; // tu correo $asunto = "Recuperación de contraseña"; // Asunto (se puede cambiar) $mensaje = "Se ha generado una nueva contraseña para el usuario <strong>".$usuario."</strong>. La nueva contraseña es: <strong>".$pass."</strong>."; $cabeceras = "From: ".$remite_nombre." <".$remite_email.">\r\n"; $cabeceras = $cabeceras."Mime-Version: 1.0\n"; $cabeceras = $cabeceras."Content-Type: text/html"; $enviar_email = mail($usuario_email,$asunto,$mensaje,$cabeceras); ...
este codigo me permite validar y enviar la contraseña nueva al email, sucede que cuando copio y pego la nueva contraseña del email para logearme no accede , como esta con MD5 en la tabla se encripta diferente que la que se envia al email.
seria mejor enviar una url al email como enlace para cambiar la contraseña en lugar de enviar la contraseña misma, es lo que lei en otros post . como puedo hacer esto?