你如何退出codeigniter程序的执行?

时间:2010-09-13 23:15:31

标签: php security validation codeigniter

我目前正在为我的网站添加预验证。因此,只有当您的会话符合该条件时,才会显示需要登录或其他条件的页面。我的大部分系统都在工作,但我有一个主要障碍。当验证失败时,我无法弄清楚如何阻止CodeIgniter运行控制器的其余部分(从而显示页面)。

这是我的配置:

  • 我的所有页面都在内容控制器中
  • 我的安全系统是一个名为security.php的模型
  • 在_head私有函数(由每个页面调用)中,我加载security.php并调用它的主函数:run()
  • $ this-> security-> run()获取页面的特定验证条件,并进行检查。

    • 如果用户通过,则run()不执行任何操作,页面继续执行

    • 这是我需要帮助的地方。如果用户没有通过,那么我需要显示一个错误页面,并阻止控制器调用任何其他视图。

有谁知道怎么做?

谢谢,

Lemiant

2 个答案:

答案 0 :(得分:1)

你可以做两件事之一。 A将重定向到具有不同uri的另一个页面。 B将使用if / else语句来选择您在同一个uri下显示的视图。

您需要做的一件事是让您谈到的安全方法如果成功则返回TRUE或FALSE。

示例:

if(!$this->security->run())
{
    redirect('my/error/page');
}

<强> B:

if($this->security->run())
{
    // Security Passes, proceed as normal
}
else
{
    // Security Fails, show error page
}

希望这有帮助

答案 1 :(得分:0)

如何停止执行codeigniter:die();exit();

但是,我认为这不是你想要做的。如果验证失败,您要做的是加载不同的视图以显示错误页面。