Esto debería funcionar, así que estoy realmente perplejo acerca de por qué no está funcionando.¿Pasar variables de PHP a un archivo incluido?
Estoy verificando si un usuario ha iniciado sesión utilizando un método de clase $ session en la parte superior de cada página de administración. Sin embargo, quiero ajustar dinámicamente el archivo de encabezado dependiendo de si un usuario ha iniciado sesión y en qué nivel de función tiene ese usuario.
Así que verifico $session->is_logged_in()
y luego seguí adelante y definí una variable llamada $logged = true
; para usar más tarde. A continuación, utilizo un método $user->find_by_id($session->id)
para crear un nuevo objeto Usuario y almacenar $user->role_level
en una nueva var llamada $role_level
para facilitar el uso.
Esto está sucediendo cerca de la parte superior de la página. Más abajo en la página, más allá del procesamiento de formularios, etc., está el comando include("../_layouts/header.php")
. Luego, en el archivo header.php, utilizo pequeños controles como if(!$logged) { ... } else { ... }
. Sin embargo ...
estoy recibiendo los errores siguientes:
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 119
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 131
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 138
¿Cómo puede ser esto? Estoy definiendo los vars en el archivo antes de incluir header.php! ¿No debería funcionar eso?
FYI, todo funcionaba bien hasta que intenté usar $logged
en el archivo header.php.
'$ logged' se establece en todos los casos? ¿No hay forma posible en el código de que no se establezca? Si agrega '$ logged =" ";' en la parte superior del script (antes de la definición), ¿qué ocurre? –
Me pasó una vez que incluí un archivo dentro de una función. A menos que pase las variables como parámetros o las defina con global, no estarán disponibles en el archivo incluido. Solo un bocado. – nalply