hdusec 发表于 2010-6-13 08:45:45

使用session处理登陆的详细过程

以前写登陆验证的操作 马马虎虎 一直对session的操作不是太理解。 今天有空就研究了下,现在就送上自己的研究成果。
望斧正。

开启session->记录session->检测session 注销session很简单
一般在含有登陆方法的控制器的构造函数里面开启。
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();

}



}

crossyou 发表于 2010-7-9 15:39:02

不错。:victory::victory:

xiaoque1989 发表于 2010-7-14 09:20:34

我还以为你用ci 的session 类   顶个

hxfsc 发表于 2010-7-29 15:06:45

顶你一个!

ares333 发表于 2010-7-30 17:35:49

这贴发新手区再合适不过

longjianghu 发表于 2010-8-25 21:15:11

为什么要unset一下呢?

visvoy 发表于 2010-8-25 23:48:22

unset可以立即释放$_SESSION占用的内存
不unset这内存可能要等请求结束才被php回收

似是故人来 发表于 2010-9-16 13:54:05

.......这个和框架没关系

nymbian 发表于 2011-5-4 10:30:37

本帖最后由 nymbian 于 2011-5-4 13:58 编辑

发个用框架的
不知有没有问题



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

}



}

geomen 发表于 2011-5-4 10:35:24

发个用框架的
不知有没有问题
nymbian 发表于 2011-5-4 10:30 http://codeigniter.org.cn/forums/images/common/back.gif
您这整的是什么版本的CI啊?!
页: [1] 2
查看完整版本: 使用session处理登陆的详细过程