很漂亮的PHP验证码(记录)
在提交表单的时候为了防止机器操作或者是恶意的攻击,在填写表单的时候一般都用验证码来过滤掉一些非法提交数据。今天给大家介绍一款超实用超漂亮的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验证码(记录)的更多相关文章
- [smf]smf论坛也很漂亮
		smf论坛代码国内使用的比较少,可能是大家习惯了dz论坛的互动方式吧!但是,smf论坛系统不失为一款好的论坛系统,也是目前为数不多的开源代码.使用起来之后,你会体会到它强大的后台操作.(例如:插件的安 ... 
- 一个漂亮的php验证码类
		一个漂亮的php验证码类(分享) 作者: 字体:[增加 减小] 类型:转载 下面小编就为大家分享一个漂亮的php验证码类.需要的朋友可以过来参考下 直接上代码: 复制代码 代码如下: //验证 ... 
- 很漂亮的用户登录界面HTML模板
		效果预览:http://keleyi.com/keleyi/phtml/divcss/21.htm HoverTree开源项目实现了分层后,准备实现管理员后台登录,这里先把登录界面的HTML模板整理好 ... 
- PHP入门培训教程 一个漂亮的PHP验证码
		如何写一个漂亮的PHP验证码?兄弟连PHP培训 小编分享一段代码给大家: <?php class Imagecode{ private $width ; private $height; pri ... 
- 一个漂亮的php验证码类(分享)
		直接上代码: 复制代码 代码如下: //验证码类class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRS ... 
- 建立一个漂亮的PHP验证码类文件及调用方式
		//验证码类class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';/ ... 
- 很漂亮的IP头格式
		IP数据包格式 TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram).这是一个与硬件无关的虚拟包,由首部和数据两部分组成.首部的前一部分是固定长度,共 20 字节,是 ... 
- Qt编写安防视频监控系统(界面很漂亮)
		一.前言 视频监控系统在整个安防领域,已经做到了烂大街的程序,全国起码几百家公司做过类似的系统,当然这一方面的需求量也是非常旺盛的,各种定制化的需求越来越多,尤其是这几年借着人脸识别的东风,发展更加迅 ... 
- java也可以做出很漂亮的界面
		其实java想把界面做漂亮点的话,只要把背景做好就行了,在jdk1.6以后可以继承JFrame,或JWindow后如下设置即可 setUndecorated(true);//不要标题栏的修饰,主要防止 ... 
随机推荐
- 自学web前端能不能找到一份前端的工作吗
			关于自学web前端能不能通过社招找到一份互联网公司web前端开发的工作,有无数的人问出这样的问题,答案没有标准的,只能从概率去考虑.有的人可以,有的人不可以,有的人自学就业的概率就是高,有的概率就是低 ... 
- 用phpstudy配置网站遇到的一些问题
			第一次是配置在我本机,总是连不上数据库,后来查看到mysql.ini配置文件里面端口号有一个不是3306,更改之后就好了. 第二次是配置在笔记本电脑上,安装的时候比较顺利,也就遇到80端口被占用还有缺 ... 
- tcp那个孤独的小包到底怎么回事?
			内核3.10,接<tcp的发送端一个小包就能打破对端的delay_ack么?> 我们继续来分析这个没满mss的小包, 可以看到,由于受到syn ack这端是发包端,所以该发送链路协商的ms ... 
- nvm管理node版本
			一.介绍与作用 不同的项目中可能使用的node版本不同,对于维护多个版本的node就是一件麻烦事了,而nvm就可以很方便的管理不同的node版本, 可以在不同的node版本间切换使用.NVM资源(针对 ... 
- 大型分布式架构设计与实现-第一章SOA(面向服务的体系架构)
			拜读了大型分布式架构设计与实现,觉得该书作为入门不错,但内容过于简单,描述过于琐碎,小节之间连续性不强,不适合深入钻研学习.但为了更多的希望向架构师行业靠拢的工程师学习需要,本博客将对上书进行简化讲解 ... 
- python 二叉树实现带括号的四则运算
			#!/usr/bin/python #* encoding=utf-8 s = "20-5*(0+1)*5^(6-2^2)" c = 0 top = [0,s[c],0] op = ... 
- Python常用字符编码(转)
			Python常用字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ... 
- Linux - Ubuntu 图形界面入门
			Ubuntu 图形界面入门 目标 熟悉 Ubuntu 图形界面的基本使用 01. Ubuntu 的任务栏 02. 窗口操作按钮 03. 窗口菜单条 ——本文源自<黑马程序员> 
- 19-07 【docker】随笔笔记
			小tips: 1,在nginx的镜像中,并未包含ping工具: 2,在busybox的镜像中,是包含ping工具和telnet工具的,所以如果想测试互通性,可以利用busybox来检查: 实验1:利用 ... 
- Hillstone目的地址转换DNAT配置
			目的地址映射主要用于将内网的服务器对外进行发布(如http服务,ftp服务,数据库服务等),使外网用户能够通过外网地址访问需要发布的服务. 常用的DNAT映射有一对一IP映射,一对一端口映射,多对多端 ... 
