用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8014|回复: 12
收起左侧

[讨论/交流] 使用session处理登陆的详细过程

  [复制链接]
发表于 2010-6-13 08:45:45 | 显示全部楼层 |阅读模式
以前写登陆验证的操作 马马虎虎 一直对session的操作不是太理解。 今天有空就研究了下,现在就送上自己的研究成果。
望斧正。

开启session->记录session->检测session 注销session  很简单
一般在含有登陆方法的控制器的构造函数里面开启。
PHP复制代码
class Welcome extends Controller
{
 
        //构造函数里面开启:
        function Welcome
{
 
       parent:Controller;
       session_start();
 
}
 
       function login()
{
       //登陆界面
}
 
      function verifyuser()
{
 
     //登陆成功
     $_SESSION['valid_user'] = 'username';
     redirect('admin',refresh);
}
 
}
 
 
//在只有登陆情况下 才可以查看的方法 就在其类的构造函数中检测session 并跳转
class admin extends Controller {
 
       function Admin
{
 
       parent:Controller;
       if(!isset($_SESSION['valid_user']))
          redirect('welcome/login',refresh);
}
 
//登出 注销
       function logout
{
       unset($_SESSION['valid_user']);
       session_destroy();
 
}
 
 
 
}
复制代码
发表于 2010-7-9 15:39:02 | 显示全部楼层
不错。
发表于 2010-7-14 09:20:34 | 显示全部楼层
我还以为你用ci 的session 类   顶个
发表于 2010-7-29 15:06:45 | 显示全部楼层
顶你一个!
发表于 2010-7-30 17:35:49 | 显示全部楼层
这贴发新手区再合适不过
发表于 2010-8-25 21:15:11 | 显示全部楼层
为什么要unset一下呢?
发表于 2010-8-25 23:48:22 | 显示全部楼层
unset可以立即释放$_SESSION占用的内存
不unset这内存可能要等请求结束才被php回收
发表于 2010-9-16 13:54:05 | 显示全部楼层
.......这个和框架没关系
发表于 2011-5-4 10:30:37 | 显示全部楼层
本帖最后由 nymbian 于 2011-5-4 13:58 编辑

发个用框架的
不知有没有问题
PHP复制代码
 
 
 
class Welcome extends CI_Controller
{
  function __construct() {
        parent::__construct();
        $this->load->library('session');
       
    }
 
 
       function login()
{
       //登陆界面
}
 
      function verifyuser()
{
 
     //登陆成功
     
         $this->session->set_userdata('valid_user', 'username');
     redirect('admin',refresh);
}
 
}
 
 
//在只有登陆情况下 才可以查看的方法 就在其类的构造函数中检测session 并跳转
class admin extends CI_Controller {
 
 function __construct() {
        parent::__construct();
        $this->load->library('session');
       
    }
       function Admin
{
 
     
       if(!isset($this->session->userdata('valid_user')))
          redirect('welcome/login',refresh);
}
 
//登出 注销
       function logout
{
       $this->session->unset_userdata('valid_user');
 
}
 
 
 
}
 
复制代码
发表于 2011-5-4 10:35:24 | 显示全部楼层
发个用框架的
不知有没有问题
nymbian 发表于 2011-5-4 10:30

您这整的是什么版本的CI啊?!

本版积分规则