El ambito de las variables (scope) NO es global en funciones .. debes de pasarle como parámetro a tu función las variables que uses y vengan definidas fuera de tu función .. o bien declararlas como globales en el interior de tu función.
Por ejemplo .. se vén algunas variables como $pagina que la estás asumiendo como global .. cuando no lo es en tu función .. (y seguro que tienes alguna más .. revisalo).
Repasa:
http://www.php.net/variables.scope
Un saludo,