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编码规范-php coding standard
Mar 16 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
Apr 28 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
使用php实现快钱支付功能(涉及到接口)
Jul 01 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
PHP使用imagick扩展实现合并图像的方法
Apr 25 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
yii2中关于加密解密的那些事儿
Jun 12 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 PHP
php让json_encode不自动转义斜杠“/”的方法
Apr 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中调用其他系统http接口的方法说明
2014/02/28 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python学习笔记之常用函数及说明
2014/05/23 Python
python中管道用法入门实例
2015/06/04 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
后勤人员自我评价怎么写
2013/09/19 职场文书
如何写好建议书
2014/03/13 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
小学教师节活动总结
2015/03/20 职场文书