第一步:利用imagecreatetruecolor($width,$height)函数制作一个指定宽高的底图
$image=imagecreatetruecolor(100, 30);
第二步:使用imagecolorallcate($image,$red,$green,$blue)方法做指定背景颜色的填充,该方法默认是输出黑色
$bg_color=imagecolorallocate($image, 255, 255, 255); //代表白色
第三步:再将我们指定好的背景色填充到我们的底图之中
imagefill($image, 0, 0, $bg_color);
第四步:数字加字码混合验证码的制作
for($i=0;$i<4;$i++){
//循环输出四个数字
$fontsize=6;//字体的大小为6
$fontcolor=imagecolorallocate($image, rand(0, 120), rand(0,120),rand(0,120));//定义字体的颜色
$data="abcdefghijklmnopqrstuvwxyz1234567890";//定义字母和数字的组合
// $fontcontent=rand(0,9);//定义数字体的取值范围
$font_content=substr($data,rand(0, strlen($data)),1);
$captch_code.="$font_content";
$x=($i*100/4)+rand(5,10);
$y=rand(5, 10);
imagestring($image, $fontsize, $x, $y, $font_content, $fontcolor);
}第五步:增加干扰元素(有增加点和增加线这两种干扰方式)
//增加点干扰元素
// for($i=0;$i<200;$i++){
// $pointcolor=imagecolorallocate($image, rand(0,200), rand(0, 200), rand(0,200));
// imagesetpixel($image, rand(1,99), rand(1, 29), $pointcolor);//该函数创建单一的点
// }
//增加线干扰元素
for($i=0;$i<8;$i++){
$line_color=imagecolorallocate($image,rand(60, 220), rand(60, 220), rand(60, 220));
imageline($image, rand(1, 99), rand(1, 29),rand(1,99),rand(1,29), $line_color);
//该内置函数是用来创建线的
// imageline($image, $x1, $y1, $x2, $y2, $color);
}第六步:用php的header()方法表名输出内容的格式为png
header('content-type:image/png');第七步:显示图片
imagepng($image);
第八步:销毁图片以便于系统资源的回收
imagedestroy($image);
第九步:我们使用$_SESSION来存储我们的验证码
session_start();//放在一开始 $captch_code="";//用来存随机生成的验证码内容,放在第三步后面 $captch_code.="$font_content";//将随机生成的验证码赋值 $_SESSION['code']=$captch_code;//将验证码的值存入$_SESSION中,放在设置干扰元素之前
验证码的使用
form表单之中图片验证码的写法(运用了js的知识)
<img src="img.php" alt="验证码,看不清楚,换一张"onclick="this.src=this.src+'?'+new Date().getTime();"/>; //img.php是我们生成验证码的PHP程序
表单处理程序:如何验证验证码是否输入正确
if(isset($_REQUEST['code'])){
session_start();
if(strtolower($_REQUEST['code'])==$_SESSION['code']){
//这里面的内容是自己随便输入的
header('Content-type:text/html;charset=UTF8');
echo "<font color='#0000cc'>输入正确</font>";
}else{
//这里面对内容是自己随便输入的
header('Content-type:text/html;charset=UTF8');
echo "<font color='#cc0000'><b>输入错误</b></font>";
}
exit();
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号