为了账号安全,请及时绑定邮箱和手机立即绑定

验证码显示空白框

跟着老师的写,代码没有报错,但是显示一个空白框,没有验证码生成啊?有遇到的没?

正在回答

2 回答

image.func.php

<?php
/*
 * 通过GD库做验证码
 * 创建画布
 */
require_once "string.func.php";
function verifyImage($width=80,$height=30,$type=1,$length=4,$pixel=0,$arc=0,$line=0,$sess_name='verify'){
	$image=imagecreatetruecolor($width,$height);
	$white=imagecolorallocate($image,255,255,255);
	$black=imagecolorallocate($image,0,0,0);
	imagefilledrectangle($image, 1, 1, $width-2, $height-2, $white);
	$randCol=imagecolorallocate($image, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100));
	$chars=buildRandomString($type,$length);
	$_SESSION[$sess_name]=$chars;
	$fontfiles=array("CAMPU_12.TTF","CountryBlueprint.ttf","Goffik-O.ttf","ParkAvenueBT.ttf","SIMYOU.TTF");
	for($i=0;$i<$length;$i++){
		$size=mt_rand(14,18);
		$angle=mt_rand(-15,15);
		$x=5+$i*$size;
		$y=mt_rand(20,26);
		$color=imagecolorallocate($image,mt_rand(50,90),mt_rand(80,200),mt_rand(90,180));
		$fontfile='../fonts/'.$fontfiles[mt_rand(0,count($fontfiles)-1)];
		$text=substr($chars,$i,1);
		imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);
	}
	if($pixel){
		for($i=0;$i<$pixel;$i++){
			imagesetpixel($image, mt_rand(0,$width-2), mt_rand(0,$height-2), $randCol);
		}
	}
	if($arc){
		for($i=0;$i<$arc;$i++){
			imagearc($image, mt_rand(0,$width-2), mt_rand(0,$height-2), mt_rand(0,$width-2), mt_rand(0,$height-2), mt_rand(0,360), mt_rand(0,360), $randCol);
		}
	}
	if($line){
		for($i=0;$i<$line;$i++){
			imageline($image, mt_rand(0,$width-2), mt_rand(0,$height-2), mt_rand(0,$width-2), mt_rand(0,$height-2), $randCol);
		}
	}
	header('content-type:image/gif');
	imagegif($image);
	imagedestroy($image);
}
verifyImage(100,50,2,5,50,2);
?>

string.func.php

<?php
	function buildRandomString($type=3,$length=4){
		if($type==1){
			$chars=join("",range(0,9));
		}elseif ($type==2) {
			$chars=join("",array_merge(range("a","z"),range("A","Z")));
		}elseif ($type==3) {
			$chars=join("",array_merge(range("a","z"),range("A","Z"),range(0,9)));
		}
		if($length>strlen($chars)){
			exit("字符串长度不够");
		}
		$chars=str_shuffle($chars);
		return substr($chars,0,$length);
	}
?>

由于不知道你的代码,所以不敢妄下定论,复制一下,我这个执行OK的

0 回复 有任何疑惑可以回复我~

在header("content-type:image/gif");前面加一句ob_clean(); 试试

2 回复 有任何疑惑可以回复我~
#1

山上的小虾

还是空白= = 而且加这句是什么原理呢
2017-08-18 回复 有任何疑惑可以回复我~
#2

_Dying

成功解决问题,太感谢你了同学
2018-10-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
手把手教你实现电商网站后台开发
  • 参与学习       117285    人
  • 解答问题       1999    个

手把手教你用PHP搭建电子商务平台,由浅入深教你搭建电商系统

进入课程

验证码显示空白框

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信