用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4499|回复: 4
收起左侧

[已解决] CI验证码的故障:Session相关

[复制链接]
发表于 2010-8-15 03:41:27 | 显示全部楼层 |阅读模式
首先是产生验证码与验证码校验的函数:
PHP复制代码
 
 function captcha(){
  $this->load->library('CaptchaImage');
  ob_start();
  $this->session->set_flashdata('captcha', $this->captchaimage->getString());
  $this->captchaimage->setFont('./system/fonts/type-ra.ttf',16);
  $this->captchaimage->draw();
  ob_flush();
 }
 function code_check($str){
  if($str==$this->session->flashdata("captcha")){
   return TRUE;
  }else{
   $this->validation->set_message('code_check', '%s不正确');
   return FALSE;
  }
 }
 
复制代码

设置验证规则的部分代码就不贴了,跟讨论问题没有影响。

故障:我在登陆的时候一直出现‘验证码错误’的提示,确认输入的验证码没有问题。该问题之前并未出现!
环境:linux + php5.2 + mysql +gd session保存在数据库的表中。
资料:
以下是我在数据库中截取的图片,可以看到有两个会话。
未命名.JPG
请问各位大牛,不知道是哪里出问题了?
我今天下午的时候还用得好好的,突然出现该问题,并未改动源码。
我清空了session数据库表的内容,但是还是 不行。
 楼主| 发表于 2010-8-15 03:49:20 | 显示全部楼层
诡异了!
我考虑到本地的Cookies的问题,所以换了不同的浏览器测试,搜狗双核的高速核心也就是webkit核心和IE核心没有区别,IE8一样的问题,换了chrome,没问题了!

看来这个问题不是程序的问题,是session处理程序在判断远程cookie中保存的sessionid的问题上还有些缺陷。
发表于 2010-8-15 11:59:43 | 显示全部楼层
用hex的session试试
 楼主| 发表于 2010-8-15 15:52:01 | 显示全部楼层
回复 3# redlink


    多谢指点,问题已经解决!

大家如果遇到类似的问题,可以直接复制HEX老大的session类库到aaplication\libarys下就可以,不需要修改源码,即可彻底解决类似问题。
发表于 2010-9-9 23:24:17 | 显示全部楼层
验证码图像我用MVC 构架怎么也搞不起。后来在根目录地下放了个专门画验证码的文件才搞定。稳定性还很不错。

本版积分规则