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 Gc的一个小概率Notice
Apr 12 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
May 29 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 PHP
PHP设置Cookie的HTTPONLY属性方法
Feb 09 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 PHP
php 的多进程操作实践案例分析
Feb 28 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 PHP
php 原生分页
Apr 01 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
php实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
PHP中生成UUID自定义函数分享
2015/06/10 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
JavaScript中的Array对象使用说明
2011/01/17 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
canvas时钟效果
2017/02/16 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
JS随机密码生成算法
2019/09/23 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
2014党员自我评议表范文
2014/09/20 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS