Hola Amigo, realmente me has ayudado un mundo, ya funciona el código pero cuando lo ejecuto que el cambia la clave no la pasa pro
md5 y me poine en la Base de datos la misma que genera.
El código quedó así:
Código PHP:
<?php
//conecto con la base de datos
$conn = mysql_connect("localhost","usuario","password");
//selecciono la BBDD
mysql_select_db("basededatos",$conn);
// incluyes la definición de la función genera_password().(yo lo obvio aquí)
function genera_password($longitud,$tipo="alfanumerico"){
if ($tipo=="alfanumerico"){
$exp_reg="[^A-Z0-9]";
} elseif ($tipo=="numerico"){
$exp_reg="[^0-9]";
}
return substr(eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())),
0, $longitud);
}
$contrasena = genera_password(8);// de 8 caracteres (o lo que quieras)
$sql = "UPDATE usuarios SET password = '$contrasena' WHERE email='".$_POST['email']."'";
mysql_query($sql) or die("error en <b>$sql</b> :::". mysql_error());
if(mysql_affected_rows() == 1){// si hay una fila afectada (o sea si el email existe en la BD)
mail ( $_POST['email'], "nuevo password", "su nuevo password es: $contrasena");
}
?>