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

[HELP] 在CI中如何使用验证码问题

[复制链接]
发表于 2009-11-11 09:40:28 | 显示全部楼层 |阅读模式
我自己写了一个简单的验证码,程序如下:

function verify() {
                session_start ();
                session_register ( "verify_code" );
                $number = mt_rand ( 10000, 99999 );
               
                $content = preg_replace ( "/(\w)/", "\\1 ", $number );
                header ( "Cache-Control: no-store, no-cache, must-revalidate" );
                header ( "Cache-Control: post-check=0, pre-check=0", false );
                header ( "Pragma: no-cache" );
                header ( "Content-Type: image/jpeg" );
                $image_x = 73;
                $image_y = 26;
                $im = imagecreatetruecolor ( $image_x, $image_y );
                $white = ImageColorAllocate ( $im, 255, 255, 255 );
                imagefill ( $im, 0, 0, $white );
               
                for($i = 1; $i <= 100; $i ++) {
                        imageString ( $im, 1, mt_rand ( 1, $image_y ), mt_rand ( 1, $image_x ), "*", imageColorAllocate ( $im, mt_rand ( 200, 255 ), mt_rand ( 200, 255 ), mt_rand ( 200, 255 ) ) );
                }
                for($i = 0; $i < strlen ( $content ); $i ++) {
                        imageString ( $im, mt_rand ( 3, 5 ), $i * $image_y / 4 + mt_rand ( 2, 4 ), mt_rand ( 1, 5 ), $content [$i], imageColorAllocate ( $im, mt_rand ( 0, 100 ), mt_rand ( 0, 150 ), mt_rand ( 0, 200 ) ) );
                }
               
                ImageJPEG ( $im );
                ImageDestroy ( $im );
                $_SESSION ['verify_code'] = $number;
        }


我在view中调用,生成的验证码图片可以显示出来,
可是我想把验证码图片对应的随机数$number保存在session中,确一直无法保存?测试打印出来什么也没有。
还有如果保存住了,怎么直接在同一个控制器的另一个方法中调用?
大家知道的可不可以帮一下我?搞了很久,还是不行,对验证码这块实在是无奈了。。。
发表于 2009-11-11 10:15:15 | 显示全部楼层
ci 的 session 是 cookie 实现的,所以要下次访问才可用。
发表于 2009-11-11 11:47:53 | 显示全部楼层
验证的时候是不是用的->session->get_userdata('verify_code')?

本版积分规则