首先,我检查过是否有类似的问题,似乎没有。如果我重新询问已经回答的问题,请告诉我。感谢。
我是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()中一个注释区域,我认为我应该加载库。
我应该在哪里初始化它?最常用的方法是什么?为什么?
其他信息:
我想用会话信息做什么?每当用户访问我的网站(登录或不登录)时,我都希望创建一个会话。当用户登录时,我会使用额外信息更新会话。
答案 0 :(得分:2)
如果您希望在用户登录时创建会话,那么为什么不使用自动加载器(./application/config/autoload.php)?
$autoload['libraries'] = array('session');
这将允许您在整个应用程序中访问会话。