Perfecto, para hacer que le envíe el correo colócale un extensión el $mensaje del final que tenga un link hacia la página de recuperación de contraseña...
Ahí colocar un <input> de texto donde el usuario coloque su correo, a partir de esto que verificas que exista un usuario con ese correo
Código PHP :
if(isset($_POST['mail'])
{
$mail = funcionparalimpiarstring_o_minimohtmlentities($_POST['mail']);
}
else
{
die("No mail, no nuevo password.. :( ")
}
$query = "SELECT * FROM usuario WHERE mail='$mail' ";
$result = mysql_query($query);
if(mysql_num_rows($result))
{
// generamos el nuevo password
$randompass=md5(uniqid(rand()));
//substraemos un cacho del Hexadecimal generado por el md5 y lo usamos como pass, y ese también usamos para enviar el para enviar el correo
$passparaemail=substr($randompass, 0, 8);
// generamos el nuevo password para la base de datos.
$nuevopass = md5($passparaemail);
//mandamos el nuevo password a la base de datos...
mysql_query("UPDATE FROM usuario SET pass='$nuevopass' WHERE mail='$mail' ") or die ("No se estableció la conexión" + mysql_error());
// mandamos el correo al usuario
$asunto = "Tu nuevo pass...";
$mensaje = "Tu nuevo password es: $passparaemail<br /><br />
Este password fue generado automáticamente, si gusta puede crear uno nuevo.";
//mandamos el correo...
if(!mail($mail, $asunto, $mensaje, "FROM: $tu <$tucorreo>"))
{
die ("No se pudo enviar... falló esa onda,, blah blah contacta con el admin");
}
else
{
echo "Tu nuevo password ha sido enviado a tu correo, don't worry be happy" ;
}
listo! con eso queda, adáptalo bien porque está hecho a rápido, verifica los queries a mySQL porque soy medio disléxico y tiendo a omitir letras.
Veo tu código y creo que le hace falta un poco más de seguridad, investiga al respecto...