自訂session處理方式導致載入驗證碼失敗。

來源:互聯網
上載者:User

一個很抓狂的問題,搞了一個下午沒弄好,請高手指教

問題是驗證碼存在SESSION中,能寫進資料庫,但是在瀏覽器載入不出來。

驗證碼輸出方法所在的控制器 繼承自BackplatformController控制器 ,

在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 < $last";        return $this->db->myquery($sql);    }}

下面是驗證碼存入session

回複內容:

一個很抓狂的問題,搞了一個下午沒弄好,請高手指教

問題是驗證碼存在SESSION中,能寫進資料庫,但是在瀏覽器載入不出來。

驗證碼輸出方法所在的控制器 繼承自BackplatformController控制器 ,

在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 < $last";        return $this->db->myquery($sql);    }}

下面是驗證碼存入session

已經搞定了,ob緩衝沒有清除

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.