验证码 类库问题
我想实现下面这样的调用调用但是图片方法一运行就出来验证图片 下面的视图就不会出现 谁能来帮下忙
$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;
}
}
页面和验证码分开,在一个视图里包含 <img 标签,在 <img 标签中调用单独的控制器生成验证码,都是这样做的。 就没有能 实现我的想法的代码??
我觉得那样做比较麻烦吧? 怎么可能能一起实现呢?图片是二进制数据,需要用 <img 标签来显示。而 HTML 是文本数据,你觉得应该怎么放到一起显示呢?
不过新的 W3C 标准可以把而进驻数据嵌入到 <img 中,这就和 PHP 没什么关系了。 传统两种做法,1直接生成图片echo内容,2将图片保存文件,img指向文件
页:
[1]