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 文件上传系统手记
Oct 26 PHP
PHP 5.3新特性命名空间规则解析及高级功能
Mar 11 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
php缓冲输出实例分析
Jan 05 PHP
php发送邮件的问题详解
Jun 22 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
Jul 09 PHP
php封装的mysqli类完整实例
Oct 18 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
php支付宝系列之电脑网站支付
May 30 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 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-Java-Bridge使用笔记
2014/09/22 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
Javascript对象Clone实例分析
2015/06/09 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
linux 下实现python多版本安装实践
2014/11/18 Python
5款非常棒的Python工具
2018/01/05 Python
Python线程指南分享
2019/11/19 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
药学专业个人的自我评价
2013/12/31 职场文书
初中作文评语集锦
2014/12/25 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
解析Redis Cluster原理
2021/06/21 Redis