代码点火器应用程序:登录功能:放置的位置

时间:2011-06-21 00:17:49

标签: codeigniter login

我正在为基于CI的网站构建一个简单的登录系统,我不确定在哪里放置我的功能:

is_logged_in()
    // check if session logged in stuff exists
    // if not check for cookie and reset from that
    // return true or false

首先,我需要从一些公共页面调用它,这样他们就可以显示“你以[blah]身份登录。继续到会员区'。

将它放入我的登录模型,从我的控制器调用它然后只是将结果(logged_in:true / false)传递给我的视图是否有意义?

1 个答案:

答案 0 :(得分:1)

晴。

这可能是模型,也可能是库问题。问题就变成了你如何存储它们是否已经登录。就我个人而言,我通常把它放在一个调用特定模型的库中,它起初看起来不太优雅,但实际上,我不希望我的模型知道任何关于我的$_SESSION或我的$this->session,如果我想要一个好的身份验证系统,其中一个是必要的。

关于如何与视图进行通信,有以下几种方法:

  1. 将其作为传递给视图的特殊变量:
    奖金:这是最明显的 不利:您需要将其放入每个要查看的调用中。这意味着要么覆盖您的加载程序,要么更新所有控件(可能是粗略的)。
  2. 将其定义为常数:
    奖金:如果您在视图中有逻辑,那么到目前为止最简单 不利:常量很少可以去,它们很难调试,而且它不是一种非常CodeIgniter的做事方式。
  3. 有辅助功能(字面意思是“辅助”功能)
    奖金:普遍可访问的值,相对容易调试。
    损害:需要帮助程序才能了解库和/或模型(这实际上是内置的form_helper,但它仍然会打开一个众所周知的蠕虫病毒)并且它可能是一个-function helper file。
  4. 有条件地包括来自控制器的视图
    奖金:它会从您的视图中删除所有逻辑 不利:您仍需要让控制器了解逻辑。
  5. 就个人而言,我最有可能使用#3& 4,但每个都有其优点。