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 相关文章推荐
一个程序下载的管理程序(三)
Oct 09 PHP
PHP文本操作类
Nov 25 PHP
php array_walk() 数组函数
Jul 12 PHP
php递归遍历多维数组的方法
Apr 18 PHP
php快速排序原理与实现方法分析
May 26 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
PHP利用百度ai实现文本和图片审核
May 08 PHP
php面试实现反射注入的详细方法
Sep 30 PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 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
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
2014/12/18 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
面向对象的javascript(笔记)
2009/10/06 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
vue3.0 项目搭建和使用流程
2021/03/04 Vue.js
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
浅谈Python爬虫基本套路
2019/03/25 Python
python cv2在验证码识别中应用实例解析
2019/12/25 Python
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
实习生自荐信范文分享
2013/11/27 职场文书
人民调解员培训方案
2014/06/05 职场文书
高中生学习计划书
2014/09/15 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
2014年应急工作总结
2014/12/11 职场文书
上课说话检讨书
2015/01/27 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
实习证明模板
2015/06/16 职场文书
教师外出学习心得体会
2016/01/18 职场文书
七年级生物教学反思
2016/02/20 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript