我是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的方法。
答案 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的/登录/注销