El global $enlace; debería estar en tu Función AbrirDB .. pero en ese caso no tiene sentido que devuelvas $enlace bajo el "return" de la misma ..
Pero el problema no es ese .. el problema es que a tu función AbrirBD no le pasas las variables que defines fuera de esa función y que pretendes usar -dentro- de la misma: $host,$user,$pass,$DB ..
Más de lo mismo en este caso .. o las declaras como "global" EN la función (dentro) .. o se las pasas como parámetro a la misma. A esto se le llama "ambito de las variables" (o en ingles: scope).
Repasa el uso de funciones en PHP:
http://www.php.net/manual/en/language.functions.php Cita: Me q la unica solucion para remediar el alcance de los scripts sera usar sesiones...
No .. esa no es la solución .. Creo que estás confundiendo términos como "sesión" y el "ambito de las variables". De hecho en una variable de sesión no se puede propagar un "link" de conexión ...
Un saludo,