一个控制器可以将用户发送到另一个控制器

时间:2010-12-02 04:42:15

标签: php codeigniter

我是CodeIgniter的新手。

我正在尝试设置一个用户必须登录才能查看网页的网站。来自Java,我正在采用分层方法。

我的想法是编写自己的Controller基础:

<?php
class MY_Controller extends Controller
{
function  Controller()
{
    parent::Controller();

    if(!$this->quickauth->logged_in())
    {
    //they need to login, send them to the login page.
    }
}
}
?>

现在我可以编写扩展它的控制器,我将确保它们将始终登录。

以下是登录页面的大纲:

<?php
class login extends Controller
{
function index()
{
        //Lets just double check, they might not have to login.
    if ($this->quickauth->logged_in())
    {
    //send them to the main controller
    }
}
}
?>

你可以看到我已经走到了这一步。我需要更换什么:
1. //将它们发送到主控制器
2. //他们需要登录,将其发送到登录页面。

有更好的方法吗?

谢谢, 布雷克

3 个答案:

答案 0 :(得分:2)

如果加载'url_helper',那里就有一个重定向功能。有关详细信息,请阅读有关url helper的文档。

答案 1 :(得分:2)

重定向很简单。

只需使用:

redirect('controller/method');

是的,加载url帮助程序以访问重定向功能。

$this->load->helper('url);

由于url helper经常使用,你应该在config / autoload中自动加载它。

答案 2 :(得分:1)

你也可以使用这样的东西

function is_logged_in()
{
    $is_logged_in = $this->session->userdata('is_logged_in');
    if (!isset($is_logged_in) || $is_logged_in != true) 
    {
     echo 'You don't have permission to access this page. <a href="http://lemonrose.net">Login</a>';
        die();
        //$this->load->view('login_form');
    }
}

你可以在此基础上构建