使用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();
}
} 不错。:victory::victory: 我还以为你用ci 的session 类 顶个 顶你一个! 这贴发新手区再合适不过 为什么要unset一下呢? unset可以立即释放$_SESSION占用的内存
不unset这内存可能要等请求结束才被php回收 .......这个和框架没关系 本帖最后由 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');
}
}
发个用框架的
不知有没有问题
nymbian 发表于 2011-5-4 10:30 http://codeigniter.org.cn/forums/images/common/back.gif
您这整的是什么版本的CI啊?!
页:
[1]
2