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 缓冲的免费实现方法
Oct 09 PHP
全文搜索和替换
Oct 09 PHP
Blitz templates 最快的PHP模板引擎
Apr 06 PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
Nov 05 PHP
PHP程序员的技术成长规划
Mar 25 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
PDO的安全处理与事物处理方法
Oct 31 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
Yii框架日志记录Logging操作示例
Jul 12 PHP
统计PHP目录中的文件数方法
Mar 05 PHP
Laravel框架下的Contracts契约详解
Mar 17 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
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
基于javascript显示当前时间以及倒计时功能
2016/03/18 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
python和c语言哪个更适合初学者
2020/06/22 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
Python用Jira库来操作Jira
2020/12/28 Python
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
行政部主管岗位职责
2013/12/28 职场文书
社区服务活动总结
2014/05/07 职场文书
2014党员批评和自我批评思想汇报
2014/09/21 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
2014年文员工作总结
2014/11/18 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
Python中的datetime包与time包包和模块详情
2022/02/28 Python