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得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 PHP
php表单处理操作
Nov 16 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
May 29 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 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
浅析PHP echo 和 print 语句
2020/06/30 PHP
更正确的asp冒泡排序
2007/05/24 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
jquery实现的鼠标拖动排序Li或Table
2014/05/04 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
django之常用命令详解
2016/06/30 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
没编程基础可以学python吗
2020/06/17 Python
如何将json数据转换为python数据
2020/09/04 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
五四青年节演讲稿
2014/05/26 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
红白喜事主持词
2015/07/06 职场文书
消防宣传语大全
2015/07/13 职场文书
优秀志愿者感言
2015/08/01 职场文书
诚信教育主题班会
2015/08/13 职场文书
Python作用域和名称空间的详细介绍
2022/04/13 Python