【问题标题】:Where should I initialize session library in CodeIgniter?我应该在哪里初始化 CodeIgniter 中的会话库?
【发布时间】:2014-06-27 12:30:33
【问题描述】:

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

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

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

到目前为止,我的两个主要控制器称为 pagesuser。这是每个代码的一部分。

用户:

<?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');
    }
}

所以,分解它。 Pages 控制器几乎可以加载所有主要页面。 用户控制器检查用户是否正在尝试注册或登录,并会加载一个显示“恭喜您现在已登录”(或未登录)的页面。

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

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

其他信息:

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

【问题讨论】:

    标签: php codeigniter session


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 2016-03-26
    • 2021-01-29
    • 2011-02-12
    • 2011-11-04
    • 2015-01-19
    • 2011-04-09
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多