Bueno ya he hecho algo pero me gustaria que lo revisaran ya que ando algo perdido. ¿Esta bien esto asi?
Código PHP:
<?php
// Este fichero recibe y procesa los datos del formulario de recuperacion de contraseña
// en el que se escriben usuario y email
// recogemos las variables enviadas por el formulario
$email=$_POST['email'];
// Conectamos a la base de datos
// Las variables de conexion se suelen poner en un fichero de configuracion que se incluye
include("../../reg/config.php");
// Consultamos si existe $nombreusuario + $emailusuario
$res=mysql_query("SELECT email FROM usu WHERE email='$email'");
if (mysql_num_rows($res)==0) {
// Si no existe, datos incorrectos y fin del proceso y volvemos al formulario de recuperacion
echo "Email no existe en la base de datos.";
}
else {
// Si existe, buscamos en la bd
$res=mysql_query("SELECT email,password FROM usu WHERE email='$email',password='$random'");
$row=mysql_fetch_assoc($res);
//Generar contraseña aleatoria
function generar_id($length)
{
$str = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for($i=0;$i<$length;$i++)
$key .= $str[mt_rand(0,strlen($str)-1)];
return $key;
}
$random = generar_id(15);
// enviamos el email de recuperacion
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
mail($email, "Recuperación", "Sus datos en nuestra web son: $email, $random, www.coriaweb.es", $headers);
$random=md5($random);
$query = "UPDATE usu
SET password = '$random' WHERE email ='$email' " ;
mysql_query($query) or die(mysql_error());
}
?>