php 简易验证码(GD库)

论坛中为了防止灌水,出现了很多的验证码的插件,现在这里介绍一个非常简单的自定义验证码函数,这个验证码实现的原理就是通过php扩展的gd库来实现的。

给出百度百科对验证码的定义“验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区),我们利用比较简易的方式实现了这个功能。”

通过上面的介绍,其实验证码就是一种编码,这种编码用来放置机器人来暴力破解的,可以是一些难以识别的图像,也可以是一些交互工作,或者一些图形计算公式。下面给出简易php验证码:

<pre code_snippet_id="454247" snippet_file_name="blog_20140819_1_8343085" name="code" class="php">image_code<span style="font-family: Arial, Helvetica, sans-serif;">(6);</span>

function image_code($length){header(‘Content-Type: image/png‘);$rand = ‘‘;for($i=0;$i<$length;$i++){$rand.=dechex(rand(0,15));}$im = imagecreatetruecolor(75,25);$blue = imagecolorallocate($im,0,102,255);imagefill($im,0,0,$blue);$white = imagecolorallocate($im,255,255,255);imageline($im,0,0,20,20,$white);imageline($im,0,2,75,20,$white);imagestring($im,5,0,0,"$rand",$white);imagepng($im);imagedestroy($im);
}


截图:

php 简易验证码(GD库),布布扣,bubuko.com

时间: 2024-11-07 09:54:19

php 简易验证码(GD库)的相关文章

PHP利用GD库画图和生成验证码图片

首先得确定php.ini设置有没有打开GD扩展功能,测试如下 print_r(gd_info()); 如果有打印出内容如下,则说明GD功能有打开: Array ( [GD Version] => bundled (2.0.34 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => 1 [GIF Read Support] => 1 [GIF Crea

php学习笔记:利用gd库生成图片,并实现随机验证码

说明:一些基本的代码我都进行了注释,这里实现的验证码位数.需要用的字符串都可以再设置.有我的注释,大家应该很容易能看得懂. 基本思路: 1.用mt_rand()随机生成数字确定需要获取的字符串,对字符串进行拼接(觉得生成的验证码觉得有点太挤,大家可以再字符串中间拼接个空格键),实现随机验证码: 备注:建议大家用mt_rand(),而不是rand(),前者效率更高 2.利用gd库生成图片,把随机字符串写到图片输出. 效果: 每次刷新,都生成一个随机验证,后期我可能还会补充怎么实现随机码点击图片就再

PHP 使用GD库生成验证码 在图像上绘制汉字

PHP 并不仅限于创建 HTML 输出, 它也可以创建和处理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在内的多种格式的图像. 更加方便的是,PHP 可以直接将图像数据流输出到浏览器. 要想在 PHP 中使用图像处理功能,你需要连带 GD 库一起来编译 PHP. GD 库和 PHP 可能需要其他的库, 这取决于你要处理的图像格式. 你可以使用 PHP 中的图像函数来获取下列格式图像的大小: JPEG, GIF, PNG, SWF, TIFF 和 JPEG2000.如果联合 ex

PHP利用GD库绘图和生成验证码图片

首先得确定php.ini设置有没有打开GD扩展功能,測试例如以下 print_r(gd_info()); 假设有打印出内容例如以下,则说明GD功能有打开: Array ( [GD Version] => bundled (2.0.34 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => 1 [GIF Read Support] => 1 [GIF

php笔记之GD库图片创建/简单验证码

燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it php画图:比如说验证码,缩略图,加水印都要用到GD库,所以要开启gd2库,才能用 首先找到php.ini中extension=php_gd2.dll  去掉前边的分号,然后重启apache,创建图片就可以用了 /* 画图的一般步骤: 1.创建画布 2.创建颜料 3.画图或者写字 4.保存 5.销毁资源 */ //创建画布 $img=imagecreatetruecolor(300,200); //创

GD库的基本信息,图像的旋转、水印、缩略图、验证码,以及图像类的封装

GD库检测 <?php phpinfo(); ?> GD库安装• Windows 使用phpstudy • Linux 编译安装 –with-gd• Linux 编译安装扩展 GD库支持的图像格式 使用 gd_info() 函数 检测服务器支持的图像格式 图像信息处理 <?php //获取图像详细信息 $image = '../image/b.png'; $info = getimagesize($image); var_dump($info); $string = file_get_c

安装GD库解决ThinkPHP 验证码Call to undefined function Think\imagecreate()出错

在php中imagecreate函数是一个图形处理函数,主要用于新建一个基于调色板的图像了,然后在这个基础上我们可以创建一些图形数字字符之类的,但这个函数需要GD库支持,如果没有开启GD库使用时会提示Call to undefined function imagecreate()错误. 例,我在测试一个简单生成图形时实例 Example #1 新建一个新的 GD 图像流并输出图像  代码如下 复制代码 <?php header("Content-type: image/png")

PHP GD库生成验证码

1.引入GD库,在php.ini中吧extension=php_gd2.dll中把前面:去掉.print_r(gd_info());打印出来相关信息. 学GD库重在理解,1.画图的过程    2,计算机的坐标体系 GD库画图典型流程 1.创建画布    imagecreatetruecolor(); 也可以打开一张图片作画布 imagecreatefromjpeg($path); 2.创建颜料 imagecolorcate(); 3.画图泼墨渲染 imagefill(); 画直线 imageli

PHP学习笔记-GD库与Jpgraph的使用

转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/52281196 本文出自:[顾林海的博客] 前言 学习PHP从第一篇笔记到现在这篇,已经十多篇了,每天花时间去学习是需要毅力的,好在自己对IT这行也是比较感兴趣,算是每天自娱自乐吧,下周一就去考科目三了,想想也是醉了,拖这么长时间. GD库 GD库是一个开放的动态创建图像.源代码公开的函数库,可以从官方网站http://www.boutell.com/gd处下载.目前,