我正在利用自定义的MY_Controller对我的Codeigniter网站上的用户进行身份验证。Codeigniter:有效地使用自定义MY_Controller进行用户身份验证 - 将变量传递给模型等
我利用$this->load->vars($data);
,使我可以访问视图中的用户信息。
我的第一个问题是,$this->load->vars($data);
允许在模型中访问,如果是这样 - 我找不到任何信息。如果没有,我怎么能让我的登录用户名到我的模型,而不必每次都通过控制器传递它?
其次......如果用户没有登录,我重定向他们redirect(base_url() . 'account/login');
这只是因为我的账户控制器还延伸MY_Controller,它就会陷入无限重定向循环的伟大工程。我可以不扩展这个页面的自定义控制器,但我看不到为什么登录用户不应该仍然能够看到登录页面..任何想法?
最后..如果用户登录,我的意见中定义了$user['username']
。 如果用户未登录,则未定义。
因此,如果我在我的代码中有if($user['username']!=''){
,当用户登录时,一切正常并且代码执行,但是当没有用户登录时弹出关于在if语句中使用的未定义变量的错误...
Codeigniter很难..
这里的工作是什么?
很多感谢!
这实际上就是我所拥有的,除了在MY_Controller的构造中,所以它对于所有页面都是自动的。您是否说只需要在每个需要用户登录的控制器中复制它就简单了? Thx –
如果它在您的MY_Controller中,那么将会为每个扩展MY_Controller的控制器调用它。如果这是你想要的,那就把它留在原来的位置。如果需要在选择的控制器上完成,则可以使网守成为辅助功能,并从单个控制器调用它。 – Rooneyl
或者,如果你想要功能来控制用户登录,组,是管理员等..你可以随时使用http://benedmunds.com/ion_auth/ – Rooneyl