php 验证码的代码,php5 图片验证码实现代码

本文详细介绍了如何使用PHP5的GD库创建和生成图片验证码,包括imagecreatetruecolor、imagecolorallocate、imagestring、imageline等函数的运用,以及如何插入中文和生成随机数。通过实例展示了从创建图像到输出验证码的完整流程。
摘要由CSDN通过智能技术生成

php5 图片验证码,需要的朋友可以参考下。

GD库的函数

1,imagecreatetruecolor -----创建一个真彩色的图像

imagecreatetruecolor(int x_size,int y_size) //x表示宽,y表示高

2,imagecolorallocate 为一幅图像分配颜色(调色板)

imagecolorallocate(resource image,int red,int green,int blue)//red,green,blue----三原色

3,imagestring 绘图函数

iamgestring(resource image,font,int x,int y,内容,颜色);

4,输出函数

php的header是定义头的动作,php5中支持3中类型:

1,Content-type:xxxx/yyyy

2,Location:xxxx:yyyy/zzzz

3,Status:nnn xxxxxx

xxxx/yyyy表示内容文件的类型

如:image/gif

image/jpeg

image/png

例子:header("Content-type:image/jpeg")

GD库中有对应的image类型

imagejpeg(),imagegif(),imagepang()

5,imageline画线函数

iamgeline(resource image,int x1,int y1,int x2,int y2,int color);

image ---图片

x1 ---启始坐标

y1

x2 ---终点坐标

y2

6,imagesetpixel画点函数

imagesetpixel(resource image,int x,int y,int color)

7,imagettftext带字体的写入函数

imagettftext(resource image,float size,float angle,int x,int y,int color,string fontfile,string text)

8,php验证码插入中文的方法

iconv("gb2312","utf-8","字符串"); //首先要将文字转换成utf-8格式

9,随机函数

1,rand([int min,int max]) //rand(1,4) 生成1-4的数

2, dechex(十进制数) //转换为十六进制

做验证码的步骤:

生成随机数 -- 创建图片 -- 随机数写成图片 --保存在session中

输入验证码例子

gdchek.php

/*

* 生成图片验证码

* and open the template in the editor.

*/

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

/*

*

*

*/

session_start();

if($_POST[sub]){

//判断验证码是否相同

if($_POST[gd_pic]==$_SESSION[check_gd]){

echo "验证成功!";

}else{

echo "验证码错误";

}

}

?>

用户名:

密码:

验证码:gdchek.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值