CI黑客的路线

时间:2012-03-17 07:14:38

标签: php codeigniter routes

所以,我有一些问题。

我只想创建一些网站,访问者可以在注册时与我的网站进行互动。 让我们说他们已经提供了他们的用户名,电子邮件,密码,blah..blah..blah ...... 然后他们提供了他们的blah..blah..blah ..它将自动登录(如果他们的数据被传递)到我的网站。 他们登录我的网站后,他们必须再次提供更多数据,比如他们上传了他们的个人资料图片,他们如何控制我们网站的隐私,例如一步一步注册。

我不希望他们与我的网站互动,直到他们完成注册。 如何使我的网站中的每个页面看起来像注册页面,直到他们完成注册。 这并不是说我会正确地发挥这种功能。

if(is_login()){
    if(is_registration_complete()){
        //you're free to go
    } else {
       // complete your registration first
    }
} else {
    //you're not logged in
}

在我的每个控制器中,如果你知道我的意思:)

如何创建全局此函数? 如果他们的注册不完整,他们将在每条路线上到注册管理员处。 如果他们完成注册,他们会去,是的你知道默认路线。

我很抱歉,如果我的英语不好,英语不是我的母语,抱歉语法错误:)

3 个答案:

答案 0 :(得分:0)

最简单的可能是使用您的检查功能创建一个库,然后将其包含在受影响的ControllerS的构造函数中:

class Blog extends CI_Controller {

       public function __construct()
       {
            parent::__construct();
            // Load the lib here or Autoload
            $this->load->library('mylogincheckhelper');
            $this->mylogincheckhelper->is_complete();
       }
}

然后你在Lib中做所有的ckecks和路由。

答案 1 :(得分:0)

您可以通过extend the core CI_Controller创建自定义控制器。然后,您可以从自定义控制器扩展页面控制器。通过扩展,您可以继承父项的功能,也可以运行父构造函数(或者在覆盖它的情况下运行它),使它们对于扩展它的人来说“全局可用”。

//extend the core controller
class MY_Controller extends CI_Controller {

    //override to provide additional functionality
    public function __construct(){

        //run the core controller
        parent::__construct();

        //then do your login and registration checks here
        //you can put code here, call another function or load a helper class
        //or better, redirect them to your registration page
    }
}

//your page's controller extending from your custom controller
class Page extends MY_Controller {

    //not overriding the constructor will execute the parent constructor
    //every page that extends your extended controller will inherit it's functions
    //and execute it's constructor

}

答案 2 :(得分:0)

使用您的注册后内容创建一个视图,并使其有条件地可见。并在模板中包含视图。