我应该在哪里初始化Code​​Igniter中的会话库?

时间:2014-06-27 12:30:34

标签: php codeigniter session

首先,我检查过是否有类似的问题,似乎没有。如果我重新询问已经回答的问题,请告诉我。感谢。

我是codeIgniter的新手,我不知道在哪里初始化会话库$this->load->library('session');

我应该像this示例中那样专门为会话制作一个控制器吗?或者我应该把它放在我现有的控制器中?

到目前为止,我的两个主要控制者称为页面用户。以下是每个代码的一部分。

用户:

<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

//login / inscription handler
class User extends CI_Controller{

    public function __construct(){  
        parent::__construct();
        $this->load->database();
        $this->load->library('layout');
        //$this->load->library('session'); This is where I would logically load the library
        $this->layout->set_title('User');
    }
    public function add(){
            $this->load->model('/user/add');
            $this->add->user();
            $this->layout->add_includes('css', 'assets/css/success.css');
            $this->layout->view('pages/success');
    }
    public function connexion(){
            $this->load->model('/user/connexion');
            $user = $this->connexion->find();
            $newdata = array(

            );


            $this->layout->view('pages/logged');
    }
}



?>

信息页:

<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Pages extends CI_Controller {

    public function __construct() {

        parent::__construct();

        // load the library
        $this->load->library('layout');
        //$this->load->library('session') Or should I put it here?
        $this->layout->set_title('Pages');

    }

    public function index() {

        $this->layout->set_title('Welcome' . $this->layout->title_separator . 'Pages');
        $this->layout->add_includes('css', 'assets/css/home.css');
        $this->layout->view('pages/home');

    }
    public function contact()
    {
        $this->layout->add_includes('css', 'assets/css/contact.css');
        $this->layout->view('pages/contact');
    }
    public function nouveautes()
    {
        $this->layout->add_includes('css', 'assets/css/news.css');
        $this->layout->view('pages/news');
    }
    public function connexion()
    {
        $this->layout->view('pages/sign_in');
    }
    public function bureau()
    {
        $this->layout->add_includes('css', 'assets/css/board.css');
        $this->layout->view('pages/board');
    }
    public function membres()
    {
        $this->layout->add_includes('css', 'assets/css/members.css');
        $this->layout->view('pages/members');
    }
}

所以,打破它。 页面控制器几乎加载了所有主页。 用户控制器检查用户是否正在尝试注册或登录,并将加载一个页面,说明&#34;祝贺您现在已登录&#34; (或不)。

注意每个控制器的__consruct()中一个注释区域,我认为我应该加载库。

我应该在哪里初始化它?最常用的方法是什么?为什么?

其他信息:

我想用会话信息做什么?每当用户访问我的网站(登录或不登录)时,我都希望创建一个会话。当用户登录时,我会使用额外信息更新会话。

1 个答案:

答案 0 :(得分:2)

如果您希望在用户登录时创建会话,那么为什么不使用自动加载器(./application/config/autoload.php)?

$autoload['libraries'] = array('session');

这将允许您在整个应用程序中访问会话。