php5 图片验证码实现代码


Posted in PHP onDecember 11, 2009

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

<?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
<?php 
/* 
* 
* 
*/ 
session_start(); 
if($_POST[sub]){ 
//判断验证码是否相同 
if($_POST[gd_pic]==$_SESSION[check_gd]){ 
echo "验证成功!"; 
}else{ 
echo "验证码错误"; 
} 
} 
?> 
<form action="login.php" method="POST"> 
用户名:<input type="text" name="user"/><br> 
密码:<input type="password" name="pwd"/><br> 
验证码:<imput type="text" name="gd_pic"/><img src="gdchek.php"><br> 
<imput type="submit" name="sub" value="submit"/> 
</form>
PHP 相关文章推荐
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
怎样去阅读一份php源代码
Aug 21 PHP
php 短链接算法收集与分析
Dec 30 PHP
非常好用的Zend Framework分页类
Jun 25 PHP
php 伪造ip以及url来路信息方法汇总
Nov 25 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
php仿微信红包分配算法的实现方法
May 13 PHP
Nginx环境下PHP flush失效的解决方法
Oct 19 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
Yii框架弹出框功能示例
Jan 07 PHP
php实现大文件断点续传下载实例代码
Oct 01 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 #PHP
一个比较简单的PHP 分页分组类
Dec 10 #PHP
PHP 采集程序中常用的函数
Dec 09 #PHP
Php 构造函数construct的前下划线是双的_
Dec 08 #PHP
PHP 读取文件内容代码(txt,js等)
Dec 06 #PHP
PHP 用数组降低程序的时间复杂度
Dec 04 #PHP
PHP 柱状图实现代码
Dec 04 #PHP
You might like
Discuz 模板引擎的封装类代码
2008/07/18 PHP
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
iis6+javascript Add an Extension File
2007/06/13 Javascript
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
微信小程序实现电子签名并导出图片
2020/05/27 Javascript
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
Python编写打字训练小程序
2019/09/26 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
金融行业职业生涯规划范文
2014/01/17 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
Python实现socket库网络通信套接字
2021/06/04 Python