【发布时间】:2010-12-08 18:01:23
【问题描述】:
这应该可以工作,所以我真的很困惑为什么它不工作。
我正在检查用户是否使用每个管理页面顶部的 $session 类方法登录。但是,我想根据用户是否登录以及该用户的角色级别来动态调整头文件。
所以我检查了$session->is_logged_in(),然后我继续定义了一个名为$logged = true的变量;以后使用。然后我使用$user->find_by_id($session->id) 方法创建一个新的用户对象并将$user->role_level 存储在一个名为$role_level 的新变量中以方便使用。
这一切都发生在页面顶部附近。在表单处理等页面的下方是include("../_layouts/header.php") 命令。然后,在 header.php 文件中,我使用了像if(!$logged) { ... } else { ... } 这样的小检查。不过……
我收到以下错误:
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
这怎么可能?在包含 header.php 之前,我在文件中定义了变量!那不应该工作吗?
仅供参考,在我尝试在 header.php 文件中使用 $logged 之前一切正常。
【问题讨论】:
-
$logged在每种情况下都设置了吗?代码中没有可能设置失败的方法吗?如果在脚本顶部(定义之前)添加$logged = "";,会发生什么? -
有一次我在函数中包含了一个文件。除非您将变量作为参数传递或使用 global 定义它们,否则它们在包含的文件中不可用。只是一个花絮。