zl程序教程

您现在的位置是:首页 >  其他

当前栏目

php5图片验证码实现代码

代码 实现 图片 验证码 php5
2023-06-13 09:14:15 时间
GD库的函数
1,imagecreatetruecolor-----创建一个真彩色的图像
imagecreatetruecolor(intx_size,inty_size)//x表示宽,y表示高
2,imagecolorallocate为一幅图像分配颜色(调色板)
imagecolorallocate(resourceimage,intred,intgreen,intblue)//red,green,blue----三原色
3,imagestring绘图函数
iamgestring(resourceimage,font,intx,inty,内容,颜色);
4,输出函数
php的header是定义头的动作,php5中支持3中类型:
1,Content-type:xxxx/yyyy
2,Location:xxxx:yyyy/zzzz
3,Status:nnnxxxxxx
xxxx/yyyy表示内容文件的类型
如:image/gif
image/jpeg
image/png
例子:header("Content-type:image/jpeg")
GD库中有对应的image类型
imagejpeg(),imagegif(),imagepang()
5,imageline画线函数
iamgeline(resourceimage,intx1,inty1,intx2,inty2,intcolor);
image---图片
x1---启始坐标
y1
x2---终点坐标
y2
6,imagesetpixel画点函数
imagesetpixel(resourceimage,intx,inty,intcolor)
7,imagettftext带字体的写入函数
imagettftext(resourceimage,floatsize,floatangle,intx,inty,intcolor,stringfontfile,stringtext)
8,php验证码插入中文的方法
iconv("gb2312","utf-8","字符串");//首先要将文字转换成utf-8格式
9,随机函数
1,rand([intmin,intmax])//rand(1,4)生成1-4的数
2,dechex(十进制数)//转换为十六进制
做验证码的步骤:
生成随机数--创建图片--随机数写成图片--保存在session中
输入验证码例子
gdchek.php
复制代码代码如下:

<?php
/*
*生成图片验证码
*andopenthetemplateintheeditor.
*/
session_start();
for($i=0;$i<4;$i++){
$rand.=dechex(rand(1,15));//生成4位数包含十六进制的随机数
}
$_SESSION[check_gd]=$rand;
$img=imagecreatetruecolor(100,30);//创建图片
$bg=imagecolorallocate($img,0,0,0);//第一次生成的是背景颜色
$fc=imagecolorallocate($img,255,255,255);//生成的字体颜色
//给图片画线
for($i=0;$i<3;$i++){
$te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
imageline($img,rand(0,15),0,100,30,$te);
}
//给图片画点
for($i=0;$i<200;$i++){
$te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($img,rand()%100,rand()%30,$te);
}
//首先要将文字转换成utf-8格式
//$str=iconv("gb2312","utf-8","呵呵呵");
//加入中文的验证
//smkai.ttf是一个字体文件,为了在别人的电脑中也能起到字体作用,把文件放到项目的根目录,可以下载,还有本机C:\WINDOWS\Fonts中有
imagettftext($img,11,10,20,20,$fc,"simkai.ttf","你好你好");
//把字符串写在图片中
//imagestring($img,rand(1,6),rand(3,70),rand(3,16),$rand,$fc);
//输出图片
header("Content-type:image/jpeg");
imagejpeg($img);
?>

login.php
复制代码代码如下:

<?php
/*
*
*
*/
session_start();
if($_POST[sub]){
//判断验证码是否相同
if($_POST[gd_pic]==$_SESSION[check_gd]){
echo"验证成功!";
}else{
echo"验证码错误";
}
}
?>
<formaction="login.php"method="POST">
用户名:<inputtype="text"name="user"/><br>
密码:<inputtype="password"name="pwd"/><br>
验证码:<imputtype="text"name="gd_pic"/><imgsrc="gdchek.php"><br>
<imputtype="submit"name="sub"value="submit"/>
</form>