您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

关于Session入库的有关问题

2025/7/1 22:02:59发布24次查看
关于session入库的问题
php学了一段时间,机子尝试着基于mvc思想写框架,但是session入库碰到一些问题,求大神帮忙看看
这是sessiondbtool.class.php文件代码:
db = mysqldb::getinstance($globals['config']['database']);
}
public function sess_close(){
return true;
}
public function sess_read($sess_id){
$sql = select sess_data from it_session where sess_id = '$sess_id';
return (string)$this->db->fetchcolumn($sql);
}
public function sess_write($sess_id,$sess_data){
$expire = time();
$sql = insert into it_session values('$sess_id','$sess_data',$expire) on duplicate key update sess_data = '$sess_data',expire = $expire;
return $this->db->query($sql);
}
public function sess_destroy($sess_id){
$sql = delete from it_session where sess_id = '$sess_id';
return $this->db->query($sql);
}
public function sess_gc($ttl){
$last_time = time() - $ttl;
$sql = delete from it_session where expire db->query($sql);
}
}
?>
这个是后台控制器类文件代码:
initsession();
//验证是否登陆
$this->checklogin();
}
/**
* 初始化session入库
*/
protected function initsession(){
new sessiondbtool;
}
/**
* 验证当前用户是否登陆
*/
protected function checklogin(){
//判断是否登录
if(controller==admin && (action==login || action==signin)) {
//不需要
}else{
//需要
if(isset($_session['is_login']) && $_session['is_login'] == 'yes'){
//载入后台的模板
require curr_view_dir . 'index.html';
//继续执行
}else{
$this->jump('index.php?p=back&c=admin&a=login','请先登录',2);
}
}
}
}
但是打开login页面的时候,没有session,登录的时候提示“请先登录”,应该是sessiondbtool没有被初始化导致了,看了很久,不知道从哪里改,好人一生平安帮忙解决
------解决思路----------------------
/**
         * 初始化session入库
         */
        protected function initsession(){
           new sessiondbtool;
        }
这段代码没有任何意义啊
------解决思路----------------------
在函数(方法)中创建的变量(对象)在函数(方法)外是访问不到的
你需要把它存放到可持续访问的载体上,比如
  $this->pile =  new sessiondbtool;
不然 initsession 执行结束后,对象也没有了
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product