在提交表单的时候为了防止机器操作或者是恶意的攻击,在填写表单的时候一般都用验证码来过滤掉一些非法提交数据。今天给大家介绍一款超实用超漂亮的PHP验证码库:Captcha。

安装

使用composer:

composer require gregwar/captcha

使用

我们可以使用CaptchaBuilder创建一个验证码:

<?php
use Gregwar\Captcha\CaptchaBuilder; $builder = new CaptchaBuilder;
$builder->build();

也可以把验证码保存为图片:

<?php
$builder->save('out.jpg');

或者直接输出为图片路径:

<?php
header('Content-type: image/jpeg');
$builder->output();

也可以结合HTML直接输出图片:

<img src="<?php echo $builder->inline(); ?>" />

我们可以使用PHP的session()来记录验证码并用于比对用户输入的验证码是否有效,请看:

<?php
$_SESSION['phrase'] = $builder->getPhrase();

上述代码在生成验证码的时候就把验证码保存在session中,当用户提交输入的验证码后,再从session中取出来进行比对,具体处理代码请查看DEMO和下载DEMO中的源码。

生成的验证码默认是5个字符,那如果你想生成4个字符的验证码,可以这样:

<?php
use Gregwar\Captcha\CaptchaBuilder;
use Gregwar\Captcha\PhraseBuilder; $phraseBuilder = new PhraseBuilder(4);
$builder = new CaptchaBuilder(null, $phraseBuilder);
$builder->build();
header('Content-type: image/jpeg');
$builder->output();

如果你想生成的验证码只有数字,只需修改:

<?php
$phraseBuilder = new PhraseBuilder(4, '0123456789');

这样就可以生成4个数字的验证码。

常用方法与选项

build($width = 150, $height = 40, $font = null):设置生成的验证码的宽度、高度以及字体。默认情况下,将随机使用库中的字体。

save($filename, $quality = 80):生成一张指定文件名和图片质量的jpg验证码图片。

get($quality = 80):获取jpg图片data数据。

output($quality = 80):向浏览器输出图片。

setBackgroundColor($r, $g, $b):设置验证码背景色,这个选项一般不推荐使用。

getPhrase():获取验证码内容。

很漂亮的PHP验证码(记录)的更多相关文章

  1. [smf]smf论坛也很漂亮

    smf论坛代码国内使用的比较少,可能是大家习惯了dz论坛的互动方式吧!但是,smf论坛系统不失为一款好的论坛系统,也是目前为数不多的开源代码.使用起来之后,你会体会到它强大的后台操作.(例如:插件的安 ...

  2. 一个漂亮的php验证码类

    一个漂亮的php验证码类(分享)   作者: 字体:[增加 减小] 类型:转载 下面小编就为大家分享一个漂亮的php验证码类.需要的朋友可以过来参考下   直接上代码: 复制代码 代码如下: //验证 ...

  3. 很漂亮的用户登录界面HTML模板

    效果预览:http://keleyi.com/keleyi/phtml/divcss/21.htm HoverTree开源项目实现了分层后,准备实现管理员后台登录,这里先把登录界面的HTML模板整理好 ...

  4. PHP入门培训教程 一个漂亮的PHP验证码

    如何写一个漂亮的PHP验证码?兄弟连PHP培训 小编分享一段代码给大家: <?php class Imagecode{ private $width ; private $height; pri ...

  5. 一个漂亮的php验证码类(分享)

    直接上代码: 复制代码 代码如下: //验证码类class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRS ...

  6. 建立一个漂亮的PHP验证码类文件及调用方式

    //验证码类class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';/ ...

  7. 很漂亮的IP头格式

    IP数据包格式 TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram).这是一个与硬件无关的虚拟包,由首部和数据两部分组成.首部的前一部分是固定长度,共 20 字节,是 ...

  8. Qt编写安防视频监控系统(界面很漂亮)

    一.前言 视频监控系统在整个安防领域,已经做到了烂大街的程序,全国起码几百家公司做过类似的系统,当然这一方面的需求量也是非常旺盛的,各种定制化的需求越来越多,尤其是这几年借着人脸识别的东风,发展更加迅 ...

  9. java也可以做出很漂亮的界面

    其实java想把界面做漂亮点的话,只要把背景做好就行了,在jdk1.6以后可以继承JFrame,或JWindow后如下设置即可 setUndecorated(true);//不要标题栏的修饰,主要防止 ...

随机推荐

  1. P1100 高低位交换

    题目描述 给出一个小于2^{32}232的正整数.这个数可以用一个3232位的二进制数表示(不足3232位用00补足).我们称这个二进制数的前1616位为“高位”,后1616位为“低位”.将它的高低位 ...

  2. springboot中logback配置

    <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false ...

  3. Redis广播

    参见:http://blog.csdn.net/u011734144/article/details/51782085

  4. leetcode125. Valid Palindrome

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...

  5. VB6 Collection实现百万文本去重

    上一篇数组的去重说到,对于千次计算以上的去重基本上特别的吃力,这里就介绍一种方法,通过Collection集合对象来过滤重复. Option Explicit '//By: InkHin '// 参考 ...

  6. CamStar insitexmlclient重新封装为.net Core类库

    工作原因经常使用camstar的 InsiteXMLClient类库做二次开发,但是只能在4.X环境下使用,对于日益繁荣的.net core生态,花费了些时间把原有的类库重新封装为.net core ...

  7. ZigZag Conversion 之字形转换字符串

    1.题目 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows ...

  8. renameTo()判断文件是否被占用(判断大文件是否完成拷贝这个动作)

    在开发需求中有一个需求是监控目录下拷贝进来的文件,并对文件进行处理, 使用的java.nio  . watchService 进行的处理,如果小文件还好一点,拷贝就是一瞬间的事情,但是如果是一个大文件 ...

  9. java中的数据导出到Excel表中

    整个项目中导出数据到.Excel的源码 import java.io.BufferedOutputStream; import java.io.FileInputStream; import java ...

  10. oralce的function处理考勤时间节点以及计算工作时间

    例如: 上班时间为 8:30 到17:30,加班则到21:00:午休时间为1小时,(12:00-13:00): 晚间休息时间为半小时 (17:30-18:00),计算一批考勤数据的上班时间. 思路: ...