Primero muchas gracias
 
Te explico 
La funcion actua correctamente y el echo me da la contraseña generada, pero cuando  la llamo desde el script 
 Código PHP:
    if(generar_contrasena()){
$error.="<b>El Nombre De Usuario No Existe.</b<br>";
}
$contrasenagenerada = md5($contrasena); 
    
  La variable $contrasena esta vacia. 
cuando ejecuto el scrip lo primero que me sale es el valor de $contrasena 
Ejemplo: 
45fuatf8 se ha enviad a su correo ......................................... 
Con lo cual la funcion actua bien y lo primero que escribe es el echo y a continuacon el texto que hay para el usuario, pero cuando envio el correo la variable $contrasena esta vacia. 
Y la variable $contrasengenerada tambien, asi que en la BBDD inserta un codigo vacio. 
No se si ahora me he explicado algo mejor 
Un saludo