2010-09-13 44 views
0

我目前正在为我的网站添加预验证。因此,只有您的会话符合该条件时才会显示需要登录或其他条件的网页。我已经掌握了大部分系统的工作,但我有一个主要障碍。当验证失败时,我无法知道如何停止运行CodeIgniter运行控制器的其余部分(从而无论如何显示页面)。如何退出codeigniter程序的执行?

这里是我的配置:

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

    • 如果用户通过,然后运行()不执行任何操作,并在页面继续执行

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

有谁知道如何做到这一点?

感谢,

Lemiant

回答

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 
} 

希望这有助于

+0

谢谢。这似乎是唯一的选择。 – lemiant 2010-09-14 00:56:12

+0

可以为错误页面加载视图而不是重定向(),以便不会使服务器请求数量加倍。 – 2010-09-14 03:25:28

+0

@米切尔麦肯纳 - 是的,我知道那是我给了选项B.我给了选项A,以防万一他想要url像/错误/未经授权或类似的东西 – 2010-09-14 18:05:19

0

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

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

相关问题