|
楼主 |
发表于 2015-7-22 14:57:34
|
显示全部楼层
本帖最后由 greedefoxes 于 2015-7-22 15:31 编辑
简单记录一下登陆的过程。 1.修改config.php 'sess_use_database'=TRUE;//使session保存在数据库中。
2.自动加载autoload.php文件中加入session类。
3.在数据库中创建ci_sessions表,包含session_id,ip_address等字段。(代码参见CI手册session类->将session数据存入数据库。)
4.模型文件model中写一个验证密码正确的函数,返回 正确返回包含用户名,密码的变量 $r,错误返回FALSE。
5.登陆控制器,登陆函数login()中,如果验证密码通过,添加一个自定义session变量, $this->session->set_userdata("sess_user",$r),将用户名和密码等信息写入。
6.主控制器My_Controller中, __construct()中加入自定义函数checklogin,checklogin方法包含两层,先检测当前访问界面是否为登陆或者退出(用到$this->uri->rsegment()函数),如果是,返回TRUE;如果不是,if($this->session->userdata('sess_user'))可以取出目标session数据,返回TRUE,以上都不是,返回FALSE。__construct()中checklogin如果返回FALSE,则跳转到登陆界面;如果返回TRUE,则可以运行加载视图函数,打开目标页面。
7.退出时销毁session,($this->session->sess_destroy())。
|
评分
-
查看全部评分
|