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 相关文章推荐
php4的彩蛋
Oct 09 PHP
php仿discuz分页效果代码
Oct 02 PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
Jun 21 PHP
PHP中的use关键字概述
Jul 23 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
php实现的网页版剪刀石头布游戏示例
Nov 25 PHP
php获取今日开始时间和结束时间的方法
Feb 27 PHP
php上传excel表格并获取数据
Apr 27 PHP
PHP实现更改hosts文件的方法示例
Aug 08 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
Jun 12 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
我的论坛源代码(八)
2006/10/09 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
js实现网页随机验证码
2020/10/19 Javascript
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
python编码总结(编码类型、格式、转码)
2016/07/01 Python
python将list转为matrix的方法
2018/12/12 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
人力资源专员岗位职责
2014/01/30 职场文书
狼和鹿教学反思
2014/02/05 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
工会换届选举方案
2014/05/21 职场文书
2015元旦节寄语
2014/12/08 职场文书
西岭雪山导游词
2015/02/06 职场文书