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服务器实现多session并发运行
Oct 09 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 PHP
php中用socket模拟http中post或者get提交数据的示例代码
Aug 08 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
WIN8.1下搭建PHP5.6环境
Apr 29 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
Sep 02 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 PHP
php调用云片网接口发送短信的实现方法
Oct 25 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
Feb 16 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 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 第三节 变量介绍
2012/04/28 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
php常量详细解析
2015/10/27 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
jquery事件与函数的使用介绍
2013/09/29 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
2016/01/22 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
Python  连接字符串(join %)
2008/09/06 Python
Python程序中的观察者模式结构编写示例
2016/05/27 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
使用python实现链表操作
2018/01/26 Python
python+pandas分析nginx日志的实例
2018/04/28 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
error和exception有什么区别
2012/10/02 面试题
料理师求职信
2014/01/30 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
英语邀请函范文
2015/02/02 职场文书
先进个人总结范文
2015/02/15 职场文书
民事上诉状范文
2015/05/22 职场文书
千与千寻观后感
2015/06/04 职场文书
初中政治教学工作总结
2015/08/13 职场文书