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 中执行系统外部命令
Oct 09 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
Oct 17 PHP
PHP连接操作access数据库实例
Mar 30 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
php5.6.x到php7.0.x特性小结
Aug 17 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
Oct 22 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
Oct 30 PHP
PHP连接SQL server数据库测试脚本运行实例
Aug 24 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
浅述python中深浅拷贝原理
2018/09/18 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
Python文件操作基础流程解析
2020/03/19 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
python实现canny边缘检测
2020/09/14 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
总经理岗位职责描述
2014/02/08 职场文书
优秀大学生自荐信
2014/06/09 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
Java常用函数式接口总结
2021/06/29 Java/Android
Docker安装MySql8并远程访问的实现
2022/07/07 Servers