自定义session处理方式导致加载验证码失败。
程序员文章站
2022-06-14 10:26:51
...
一个很抓狂的问题,搞了一个下午没弄好,请高手指教
问题是验证码存在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 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 db->myquery($sql);
}
}
下面是验证码存入session
已经搞定了,ob缓存没有清除