Codeigniter会话声明

时间:2013-10-21 09:33:27

标签: codeigniter session

我是CodeIgniter框架的新手。我使用的是2.1.4版本。我设计了一个简单的登录表单,带有javascript验证,以及站点的主页。能否帮助我了解如何声明会话,以及如何在点击注销链接时销毁会话。

登录页面的控制器文件(加载视图页面login.php): -

class Login extends CI_Controller {
    function __construct() {
      parent::__construct();
      $this->load->helper('url');
  }
 function index(){
    $this->load->view('login');
 }
 function success() {
     redirect ('home');
  }
}

视图home.php的控制器文件home.php

class Home extends CI_Controller {

// local constructor will be overriding the one in the parent controller class 
// for using a constructor in any of my Controllers
function __construct() {
    parent::__construct();

}

public function index()
        {
                $this->load->view('home');
        }
}

我设计了视图页面home.php,并给出了注销链接: -

 <div class="logout"><a href="">Signout</a></div>

为了初始化会话,我需要知道所有构造函数更改/配置更改需要什么,以及会话destoy的方法。

2 个答案:

答案 0 :(得分:0)

要启动会话库,请转到application/config/config.php并更改以下行:

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

如果您在autoload.php开始会话会更好。要销毁会话,您将使用:

$this->session->sess_destroy();

设置会话:

$newdata = array(
               'username'  => 'johndoe',
               'email'     => 'johndoe@some-site.com',
               'logged_in' => TRUE
           );

$this->session->set_userdata($newdata);

答案 1 :(得分:0)

这里是一个控制器...首先你需要声明一个会话,这样你就有两个选择来声明一个是转到application / config / config.php改变代码为

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

并按照以下方法(控制器)

 class Login extends CI_Controller{
function __construct(){
    parent::__construct();
   $this->load->library('session');
}
function index(){
$this->load->view('login');
}
function success() {
  $user=$this->input->post('user'); 
  $psw=$this->input->post('pswd');
   $this->load->model('validation');
  $result=$this->validation->useraccess($user,$psw);
if($result)
 {
  $this->session->set_userdata('username', $user); //setting session 
  redirect ('home');
 }
 else
{
   $this->index();
}
}
function logout()
{
   $this->session->unset_userdata('username');
   redirect('login','refresh');
}
}

这是完成验证的模型

Class Validation extends CI_Model{
function __construct(){
 parent::__construct();
}
function useraccess($user,$pswd)
{
 $query = $this->db->query("select * from user where username='$user' AND password='$pswd'");
 foreach ($query->result_array() as $row)
 {
  if($row['username']==$user AND $row['password']==$pswd)
   {
return true;
   }
   else 
   {
     return false;
   } 
 }
}
}

这是一个观点  登录页面

创建2个文本框和1个提交按钮,并将表单操作声明为 本地主机/ index.php的/登录/成功

用于logut 本地主机/ index.php的/登录/注销