关于图片验证的求助
我想做一个图片验证码,思路是在模型中建立一个图片验证生成类,或者做一个函数。但我先在控制器里生成,做做试验:
function register(){ $str='123456789ABCDEFGHIJKLMNOPQRSLUVWXYZabcdefghijklmnopqrstuvwxyz';
$str_len=strlen($str);
$checknum="";
for($i=1;$i<=4;$i++){
$checknum.=$str;
}
if(strlen($checknum)==3){
$checknum.=$str;
}
$im=imagecreatetruecolor(100,30);
$black = ImageColorAllocate($im, 0,0,0); //设定三种颜色
$white = ImageColorAllocate($im, 255,255,255);
$randcolor = ImageColorAllocate($im, rand(71,12),rand(106,62),rand(208,604));
//$bg=imagecolorallocate($im,255,0,0);
$te=imagecolorallocate($im,255,255,255);
imagefill($im,0,0,$randcolor);
imagestring($im,rand(4,6),rand(1,70),rand(1,10),$checknum,$te);
header("Content-type: image/png");
imagejpeg($im);
}
我发现输出的是乱码,并且提示Message: Cannot modify header information - headers already sent by。。。。
去掉 header("Content-type: image/png");显示的依旧是乱码。
在论坛的源码共享里面有朋友做的验证类,我拿来测试也依旧提示那个错,并显示乱码。
不知道哪位朋友能指点一下!在下感激不尽。 我觉得应该通过视图来输出内容,而不能让控制器直接输出,这不符合 MVC 理念。 我也想通过视图去输出,可是传递到视图也依然是乱码。 你是不是文件的字符集,没有统一 都是UTF-8 仅仅是生成的图片是乱码。
不知道是不是我的方法不对。 图片还能是乱码???我用过一些生成验证码的类库,都很好,没问题呀。 你的代码我试了。没有问题。
在我的环境中。完全可以使用。图片生成正常。 崩溃了。这个代码我离开CI环境就正常,放在这个里面就不行。找到个函数,我试试人家的。 楼主看一下你的文件是不是有 BOM 吧!
什么是 BOM 你搜索一下论坛或者 GOOGLE 都是UTF-8 仅仅是生成的图片是乱码。
不知道是不是我的方法不对。
lyic_lee 发表于 2009-4-6 10:38 http://codeigniter.org.cn/forums/images/common/back.gif
太有才了
页:
[1]