×
基础获取ThinkPHPThinkPHP环境要求ThinkPHP目录结构ThinkPHP入口文件自动生成ThinkPHP模块ThinkPHP控制器ThinkPHP开发规范配置配置格式配置加载读取配置动态配置扩展配置批量配置

架构

模块化设计URL模式多层MVCCBD模式命名空间自动加载应用模式项目编译系统流程路由路由定义规则路由正则路由静态路由闭包支持实例说明

控制器

控制器定义前置和后置操作Action参数绑定伪静态URL大小写URL生成AJAX返回跳转和重定向输入变量请求类型空操作空控制器插件控制器操作绑定到类模型模型定义模型实例化字段定义连接数据库切换数据库分布式数据库支持连贯操作WHERETABLEALIASDATAFIELDORDERLIMITPAGEGROUPHAVINGJOINUNIONDISTINCTLOCKCACHECOMMENTRELATIONUSINGfetchSqlTOKENSTRICTINDEX命名范围CURD操作数据创建数据写入数据读取数据更新数据删除ActiveRecord字段映射

查询语言

查询方式表达式查询快捷查询区间查询组合查询统计查询SQL查询动态查询子查询自动验证自动完成参数绑定虚拟模型模型分层视图模型关联模型高级模型Mongo模型视图模板定义模板主题模板赋值模板渲染获取模板地址获取内容模板引擎模板变量输出系统变量使用函数默认值输出使用运算符标签库模板继承修改定界符三元运算包含文件内置标签比较标签范围判断标签IF标签Present标签Empty标签Defined标签Volist标签Assign标签Foreach标签Define标签For标签标签嵌套Switch标签import标签使用PHP代码原样输出模板注释模板布局模板替换调试调试模式异常处理日志记录页面TraceTrace方法变量调试性能调试错误调试模型调试缓存数据缓存快速缓存查询缓存SQL解析缓存静态缓存安全输入过滤表单合法性检测表单令牌防止SQL注入目录安全文件保护模板文件上传安全防止XSS攻击其他安全建议扩展类库扩展驱动扩展缓存驱动数据库驱动日志驱动Session驱动存储驱动模板引擎驱动标签库驱动行为扩展标签扩展Widget扩展应用模式部署PATH_INFO支持URL重写模块部署域名部署入口绑定替换入口专题SESSION支持Cookie支持多语言支持数据分页文件上传验证码图像处理RESTFulRPCSAE

微信SDK

WechatIP获取和定位附录常量参考配置参考升级指导鸣谢

验证码


ThinkVerify类可以支持验证码的生成和验证功能。

生成验证码

下面是最简单的方式生成验证码:

$Verify = new ThinkVerify();
$Verify->entry();

上面的代码会生成默认的验证码图片并输出,显示如下:

verify

生成的验证码信息会保存到session中,包含的数据有:

array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')

如果你需要在一个页面中生成多个验证码的话,entry方法需要传入可标识的信息,例如: 验证码1:

// 验证码1
$Verify = new ThinkVerify();
$Verify->entry(1);

验证码2:

// 验证码2
$Verify = new ThinkVerify();
$Verify->entry(2);

验证码参数

可以对生成的验证码设置相关的参数,以达到不同的显示效果。 这些参数包括:

参数 描述
expire 验证码的有效期(秒)
useImgBg 是否使用背景图片 默认为false
fontSize 验证码字体大小(像素) 默认为25
useCurve 是否使用混淆曲线 默认为true
useNoise 是否添加杂点 默认为true
imageW 验证码宽度 设置为0为自动计算
imageH 验证码高度 设置为0为自动计算
length 验证码位数
fontttf 指定验证码字体 默认为随机获取
useZh 是否使用中文验证码
bg 验证码背景颜色 rgb数组设置,例如 array(243, 251, 254)
seKey 验证码的加密密钥
codeSet 验证码字符集合
zhSet 验证码字符集合(中文)

参数设置使用两种方式。

实例化传入参数:

$config =    array(
    'fontSize'    =>    30,    // 验证码字体大小
    'length'      =>    3,     // 验证码位数
    'useNoise'    =>    false, // 关闭验证码杂点
);
$Verify =     new ThinkVerify($config);
$Verify->entry();

或者采用动态设置的方式,如:

$Verify =     new ThinkVerify();
$Verify->fontSize = 30;
$Verify->length   = 3;
$Verify->useNoise = false;
$Verify->entry();

生成的验证码如图所示:

localhost

验证码字体

默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think/Verify/ttfs/目录下面的字体文件,我们可以指定验证码的字体,例如:

$Verify =     new ThinkVerify();
// 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
$Verify->fontttf = '5.ttf'; 
$Verify->entry();

背景图片

支持验证码背景图片功能,可以如下设置:

$Verify =     new ThinkVerify();
// 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片
$Verify->useImgBg = true; 
$Verify->entry();

效果如图所示:

localhost(2)

中文验证码

如果要使用中文验证码,可以设置:

$Verify =     new ThinkVerify();
// 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
$Verify->useZh = true; 
$Verify->entry();

显示效果如图:

logo

如果无法正常显示,请确认你的 ThinkPHP/Library/Think/Verify/zhttfs/ 目录下面存在中文字体文件。

指定验证码字符

3.2.1版本以上,我们可以指定验证码的字符,通过重新设置codeSet参数即可,例如:

$Verify =     new ThinkVerify();
// 设置验证码字符为纯数字
$Verify->codeSet = '0123456789'; 
$Verify->entry();

如果是中文验证码,可以使用zhSet参数设置,例如:

$Verify =     new ThinkVerify();
$Verify->useZh = true;
// 设置验证码字符
$Verify->zhSet = '们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这'; 
$Verify->entry();

验证码检测

可以用ThinkVerify类的check方法检测验证码的输入是否正确,例如,下面是封装的一个验证码检测的函数:

// 检测输入的验证码是否正确,$code为用户输入的验证码字符串
function check_verify($code, $id = ''){
    $verify = new ThinkVerify();
    return $verify->check($code, $id);
}

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)