z445619791 发表于 2010-2-3 15:00:03

验证码 类库问题

我想实现下面这样的调用调用
但是图片方法一运行就出来验证图片 下面的视图就不会出现 谁能来帮下忙


$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       
/**
* 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;
        }
}

Hex 发表于 2010-2-3 15:44:30

页面和验证码分开,在一个视图里包含 <img 标签,在 <img 标签中调用单独的控制器生成验证码,都是这样做的。

z445619791 发表于 2010-2-3 15:49:08

就没有能 实现我的想法的代码??

我觉得那样做比较麻烦吧?

Hex 发表于 2010-2-3 16:12:56

怎么可能能一起实现呢?图片是二进制数据,需要用 <img 标签来显示。而 HTML 是文本数据,你觉得应该怎么放到一起显示呢?
不过新的 W3C 标准可以把而进驻数据嵌入到 <img 中,这就和 PHP 没什么关系了。

visvoy 发表于 2010-2-3 19:56:04

传统两种做法,1直接生成图片echo内容,2将图片保存文件,img指向文件
页: [1]
查看完整版本: 验证码 类库问题