thinkphp 验证码
来源:互联网 发布:autodesk 软件绘图技巧 编辑:程序博客网 时间:2024/06/04 18:28
验证码
Think\Verify类可以支持验证码的生成和验证功能。
一、生成验证码
下面是最简单的方式生成验证码:
上面的代码会生成默认的验证码图片并输出,显示如下:
生成的验证码信息会保存到session中,包含的数据有:
参数设置使用两种方式。
1 实例化传入参数:
生成的验证码如图所示:
验证码字体
默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think/Verify/ttfs/目录下面的字体文件,我们可以指定验证码的字体,例如:
背景图片
支持验证码背景图片功能,可以如下设置:
中文验证码
如果要使用中文验证码,可以设置:
显示效果如图:
如果无法正常显示,请确认你的 ThinkPHP/Library/Think/Verify/zhttfs/ 目录下面存在中文字体文件。
指定验证码字符
3.2.1版本以上,我们可以指定验证码的字符,通过重新设置codeSet参数即可,例如:
如果是中文验证码,可以使用zhSet参数设置,例如:
三、验证码检测
可以用Think\Verify类的check方法检测验证码的输入是否正确,例如,下面是封装的一个
验证码检测的函数:
Think\Verify类可以支持验证码的生成和验证功能。
一、生成验证码
下面是最简单的方式生成验证码:
$Verify = new \Think\Verify();$Verify->entry();
上面的代码会生成默认的验证码图片并输出,显示如下:
生成的验证码信息会保存到session中,包含的数据有:
array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')
如果你需要在一个页面中生成多个验证码的话,entry方法需要传入可标识的信息,例如:
验证码1:
// 验证码1$Verify = new \Think\Verify();$Verify->entry(1);验证码2:
// 验证码2$Verify = new \Think\Verify();$Verify->entry(2);
二、验证码参数
可以对生成的验证码设置相关的参数,以达到不同的显示效果。这些参数包括:参数设置使用两种方式。
1 实例化传入参数:
$config = array( 'fontSize' => 30, // 验证码字体大小 'length' => 3, // 验证码位数 'useNoise' => false, // 关闭验证码杂点 ); $Verify = new \Think\Verify($config); $Verify->entry();
或者
2 采用动态设置的方式,如:
$Verify = new \Think\Verify();$Verify->fontSize = 30;$Verify->length = 3;$Verify->useNoise = false;$Verify->entry();
生成的验证码如图所示:
验证码字体
默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think/Verify/ttfs/目录下面的字体文件,我们可以指定验证码的字体,例如:
$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf$Verify->fontttf = '5.ttf'; $Verify->entry();
背景图片
支持验证码背景图片功能,可以如下设置:
$Verify = new \Think\Verify();// 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片$Verify->useImgBg = true; $Verify->entry();效果如图所示:
中文验证码
如果要使用中文验证码,可以设置:
$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf$Verify->useZh = true; $Verify->entry();
显示效果如图:
如果无法正常显示,请确认你的 ThinkPHP/Library/Think/Verify/zhttfs/ 目录下面存在中文字体文件。
指定验证码字符
3.2.1版本以上,我们可以指定验证码的字符,通过重新设置codeSet参数即可,例如:
$Verify = new \Think\Verify();// 设置验证码字符为纯数字$Verify->codeSet = '0123456789'; $Verify->entry();
如果是中文验证码,可以使用zhSet参数设置,例如:
$Verify = new \Think\Verify();$Verify->useZh = true;// 设置验证码字符$Verify->zhSet = '们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这'; $Verify->entry();
三、验证码检测
可以用Think\Verify类的check方法检测验证码的输入是否正确,例如,下面是封装的一个
验证码检测的函数:
// 检测输入的验证码是否正确,$code为用户输入的验证码字符串function check_verify($code, $id = ''){ $verify = new \Think\Verify(); return $verify->check($code, $id); }
示例代码:
视图页面代码:
<form action="__CONTROLLER__/login" method="post"> <div > <input type="text" name="captcha" placeholder="填写右侧的验证码" data-validate="required:请填写右侧的验证码" /> <img src="__CONTROLLER__/code" alt="" width="150" height="32" onclick= this.src="__CONTROLLER__/code/"+Math.random() style="cursor: pointer;"> </div> <input type="submit" value="登录"> </form>
控制器代码:
<?phpnamespace Admin\Controller;use Think\Controller;class LoginController extends Controller {public function login(){if(IS_POST){//先检查验证码$Verify = new \Think\Verify();if(!$Verify->check($captcha)){$this->error("验证码错误");}}$this->display();}//验证码生成函数public function code(){//使用tp自带的验证码$Verify = new \Think\Verify();$Verify->entry();}}
阅读全文
0 0
- thinkphp验证码的验证
- thinkphp 验证码
- thinkphp验证码问题
- ThinkPHP验证码
- ThinkPHP验证码
- ThinkPHP 验证码
- thinkphp验证码更改
- thinkphp 验证码 Verify
- ThinkPHP验证码
- ThinkPHP验证码
- thinkphp验证码错误
- thinkphp验证码
- thinkphp 验证码
- Thinkphp生成验证码
- 【ThinkPHP】验证码
- ThinkPHP验证码制作
- thinkphp验证码
- thinkphp验证码
- 我的“项目”:教务管理系统
- linux内核--段页式管理内存的方法
- redis的基本命令
- mybatis示例1
- foreach关键字
- thinkphp 验证码
- 算法与数据结构-常用排序算法总结2-基数排序
- c++中的操作符重载
- Spring Exception:Exception in thread "main" java.lang.NoClassDefFoundError:org/apache/commons/loggin
- 在错误的时间遇上乐视 谁会接手风雨飘摇中的酷派?
- 面向对象的五个基本原则
- 电商项目实战——第一天(环境部署)4搭建Nginx,域名解析配置
- MBR详解
- 3DSlicer13:Command Line Interface(CLI)