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

[HELP] 验证码 类库问题

[复制链接]
发表于 2010-2-3 15:00:03 | 显示全部楼层 |阅读模式
我想实现下面这样的调用调用
但是图片方法一运行就出来验证图片 下面的视图就不会出现 谁能来帮下忙

PHP复制代码
 
$this->load->library('my_code');
$date['myimg']=$this->my_code->getimg();
$date['mycode']=$this->my_code->gestring();
$this->load->view('v_view', $data);
 
复制代码


基于CI的简单 轻便原则 谁能帮忙改下下面的类库代码

PHP复制代码
 
<?php  
/**
 * CI
 *
 * 我的验证码类
 * 目录:    ./system/application/libraries
 * 文件名: MY_Code.php
 **/

// ------------------------------------------
class MY_Code
{
        var $mystring='';
       
        function MY_Code(){
                $this->mystring=$this->setstring();
        }
       
        /**
         * 获取随机图片
         **/

        function getimg(){
                Header("Content-type: image/PNG");     
                $im = @imagecreate(80,40) or die ("无法初始化新的GD图像");     //新建一个新的 GD 图像
                $bg = imagecolorallocate($im, mt_rand(100,255), mt_rand(100,255), mt_rand(100,255));            //图像分配颜色
                $font = imagecolorallocate($im, mt_rand(100,255), mt_rand(0,100), mt_rand(100,255));            //字体颜色
                imagestring($im, 5, 10, 10, $this->getstring(), $font);
                imagepng($im);
                imagedestroy($im);
        }
       
        /**
         * 获取随机数据
         **/

        function getstring(){
                return $this->mystring;
        }
       
        /**
         * 产生随机数
         **/

        function setstring(){
                $string='abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
                $str='';
                for($i=0; $i<7; $i++){
                        $num=mt_rand(0,61);     //产生随机数
                        $str.=$string["$num"];
                }
                return $str;
        }
}
 
复制代码
发表于 2010-2-3 15:44:30 | 显示全部楼层
页面和验证码分开,在一个视图里包含 <img 标签,在 <img 标签中调用单独的控制器生成验证码,都是这样做的。
 楼主| 发表于 2010-2-3 15:49:08 | 显示全部楼层
就没有能 实现我的想法的代码??

我觉得那样做比较麻烦吧?
发表于 2010-2-3 16:12:56 | 显示全部楼层
怎么可能能一起实现呢?图片是二进制数据,需要用 <img 标签来显示。而 HTML 是文本数据,你觉得应该怎么放到一起显示呢?
不过新的 W3C 标准可以把而进驻数据嵌入到 <img 中,这就和 PHP 没什么关系了。
发表于 2010-2-3 19:56:04 | 显示全部楼层
传统两种做法,1直接生成图片echo内容,2将图片保存文件,img指向文件

本版积分规则