在提交表单的时候为了防止机器操作或者是恶意的攻击,在填写表单的时候一般都用验证码来过滤掉一些非法提交数据。今天给大家介绍一款超实用超漂亮的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. 使用css设置三角形

    1.在开发中,有时候会用到一些小三角形来强调或者标记元素,这样以便区分不同的项目,然后把三角形绘制成一个比较明显的颜色,就达到效果了,那怎么才能画出三角形呢,之前我也不清楚,最近看到了有些网页在使用, ...

  2. JS 中offset 的小bug 与解决方案。

    一.发现bug准备工作,先定义一个div,然后给div加上样式    效果图如图所示: 二.编写正常的代码,同时给div加上一个id     会发现div图会向左缩进...直至消失. 三.添加代码bo ...

  3. React-Native: bios打开VT-x选项

    问题: 我在Android Studio新建一个虚拟机的时候出现如图错误: 解决方案:重启电脑,开机的时候不停的按f12(不同的主机不一样),进入bios,然后打开Virtualization Tec ...

  4. png 变透明

    using  System.Drawing Image image;    image = Image.FromFile("d:\\1.png");    Bitmap bitma ...

  5. 关于导入zepto出错的问题

    一.前言 webpack在配置多页面开发的时候 ,发现用 import 导入 Zepto 时,会报 Uncaught TypeError: Cannot read property 'createEl ...

  6. 移动端目标识别(1)——使用TensorFlow Lite将tensorflow模型部署到移动端(ssd)之TensorFlow Lite简介

    平时工作就是做深度学习,但是深度学习没有落地就是比较虚,目前在移动端或嵌入式端应用的比较实际,也了解到目前主要有 caffe2,腾讯ncnn,tensorflow,因为工作用tensorflow比较多 ...

  7. PS 知识整理

    Ctrl+J键复制背景图层. ps怎样只让截取的一部分图旋转 https://jingyan.baidu.com/article/d45ad14877fc6e69542b8079.html 按Ctrl ...

  8. file常用功能

    构造方法 File(String pathname):将指定的路径名转换成一个File对象 File f = new File("D:\\a\\b.txt"); File(Stri ...

  9. C#使用Spire.Doc Word for .Net读写Word

    以前对Excel或Word文档操作都使用微软的COM组件Microsoft Word 15.0 object library. 但是这种方式必须要求服务器上安装Office,而且会出现读写操作完成后未 ...

  10. Python学习—框架篇之初识Django

    什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的W ...