欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

自定义session处理方式导致加载验证码失败。

程序员文章站 2022-05-30 10:21:13
...

一个很抓狂的问题,搞了一个下午没弄好,请高手指教

问题是验证码存在SESSION中,能写进数据库,但是在浏览器加载不出来。

验证码输出方法所在的控制器 继承自BackplatformController控制器 ,
自定义session处理方式导致加载验证码失败。

在BackplatformController的构造方法里调用session类

下面是自定义的session类

db = MYSQLDB::getInstance($GLOBALS['config']['database']);
    }

    /**
     * 关闭
     * @return bool
     */
    public function sess_close(){
        return true;
    }

    /**
     * @param $sess_id
     * @return string
     */
    public function sess_read($sess_id){
        $sql="select sess_data from it_session where sess_id='$sess_id'";
        if($row=$this->db->fetchRow($sql)){
            return $row['sess_data'];
        }else{
            return '';
        }
    }

    /**
     * @param $sess_id
     * @param $sess_data
     */
    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'";
        if($result=$this->db->myquery($sql)){
            return true;
        }
    }

    /**
     * @param $sess_id
     */
    public function sess_destroy($sess_id){

        $sql="delete from it_session where sess_id='$sess_id'";
        $result=$this->db->myquery($sql);
    }

    /**
     * @param $ttl
     * @return mixed
     */
    public function sess_gc($ttl){
        $now = time();
        $last = $now -$ttl;
        //删除过期session
        $sql = "delete from it_session where expire db->myquery($sql);
    }
}

下面是验证码存入session

自定义session处理方式导致加载验证码失败。

回复内容:

一个很抓狂的问题,搞了一个下午没弄好,请高手指教

问题是验证码存在SESSION中,能写进数据库,但是在浏览器加载不出来。

验证码输出方法所在的控制器 继承自BackplatformController控制器 ,
自定义session处理方式导致加载验证码失败。

在BackplatformController的构造方法里调用session类

下面是自定义的session类

db = MYSQLDB::getInstance($GLOBALS['config']['database']);
    }

    /**
     * 关闭
     * @return bool
     */
    public function sess_close(){
        return true;
    }

    /**
     * @param $sess_id
     * @return string
     */
    public function sess_read($sess_id){
        $sql="select sess_data from it_session where sess_id='$sess_id'";
        if($row=$this->db->fetchRow($sql)){
            return $row['sess_data'];
        }else{
            return '';
        }
    }

    /**
     * @param $sess_id
     * @param $sess_data
     */
    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'";
        if($result=$this->db->myquery($sql)){
            return true;
        }
    }

    /**
     * @param $sess_id
     */
    public function sess_destroy($sess_id){

        $sql="delete from it_session where sess_id='$sess_id'";
        $result=$this->db->myquery($sql);
    }

    /**
     * @param $ttl
     * @return mixed
     */
    public function sess_gc($ttl){
        $now = time();
        $last = $now -$ttl;
        //删除过期session
        $sql = "delete from it_session where expire db->myquery($sql);
    }
}

下面是验证码存入session

自定义session处理方式导致加载验证码失败。

已经搞定了,ob缓存没有清除

相关标签: php php框架