控制器传输到html  数据处理

<foreach name='vlist' item='v'>
<tr>
<td><input type="checkbox" name="key[]" value="{$v.id}"></td>
<td>{$v.userid}</td>
<td>{$v.loginname}</td>
<td>{$v.usermobile}</td>
<td id="{$v.userid}">正在获取余额</td>
<td >{$v.lastlogintime|date='Y-m-d H:i:s', ###}</td>  时间处理
<td >{$v.addtimes|date='Y-m-d H:i:s', ###}</td>
<td >{$v.userimg}</td>

</td>
</tr>
<script>getMoney({$v.userid});</script>
</foreach>


<?php
namespace Home\Controller;
use Think\Controller;
class TestController extends Controller
{
public function test()
{
$y=D("YongHu");
$arr=array(
array('uid','require','用户名不能为空!'), //表单验证
);
if($y->validate($arr)->create()) //使用validate 把规则加进来 判断是否成功
{ $verify = new \Think\Verify();
$a= $verify->check($_POST["yzm"]); //验证验证码的方法 if($a) //验证通过返回 true
{ echo"" ; //验证成功
$y->add();
$this->ajaxReturn("通过验证","eval");
}
else
{
echo""; //验证失败
}
}
else
{
$this->ajaxReturn($y->getError(),"eval");//表单验证错误信息
} }

public function yzm()   
{
$V= new \Think\Verify(); //生成动态图验证码的方法
$V->entry();
}


验证码

 

Think\Verify类可以支持验证码的生成和验证功能。

生成验证码

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

  1. $Verify = new \Think\Verify();
  2. $Verify->entry();

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

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

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

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

  1. // 验证码1
  2. $Verify = new \Think\Verify();
  3. $Verify->entry(1);

验证码2:

  1. // 验证码2
  2. $Verify = new \Think\Verify();
  3. $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 验证码字符集合 3.2.1 新增
zhSet 验证码字符集合(中文) 3.2.1 新增

参数设置使用两种方式。

实例化传入参数:

  1. $config = array(
  2. 'fontSize' => 30, // 验证码字体大小
  3. 'length' => 3, // 验证码位数
  4. 'useNoise' => false, // 关闭验证码杂点
  5. );
  6. $Verify = new \Think\Verify($config);
  7. $Verify->entry();

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

  1. $Verify = new \Think\Verify();
  2. $Verify->fontSize = 30;
  3. $Verify->length = 3;
  4. $Verify->useNoise = false;
  5. $Verify->entry();

生成的验证码如图所示:

验证码字体

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

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

背景图片

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

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

效果如图所示:

中文验证码

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

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

显示效果如图:

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

指定验证码字符

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

  1. $Verify = new \Think\Verify();
  2. // 设置验证码字符为纯数字
  3. $Verify->codeSet = '0123456789';
  4. $Verify->entry();

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

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

验证码检测

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

  1. // 检测输入的验证码是否正确,$code为用户输入的验证码字符串
  2. function check_verify($code, $id = ''){
  3. $verify = new \Think\Verify();
  4. return $verify->check($code, $id);
  5. }

thinkphp 动态验证码的更多相关文章

  1. 由12306动态验证码想到的ASP.NET实现动态GIF验证码(附源码)

    背景: 12306网站推出“彩色动态验证码机制”,新版验证码不但经常出现字符叠压,还不停抖动,不少人大呼“看不清”,称“那个验证码,是毕加索的抽象画么!”铁总客服则表示:为了能正常购票只能这样.而多家 ...

  2. C#之asp.net 及MVC 生成动态验证码:

    C#之asp.net 及MVC 生成动态验证码: 1.生成验证码字符串 // 随机生成指定长度的验证码字符串private string RandomCode(int length) { string ...

  3. 动态验证码处理UI自动化获取处理

    解决思路两种:1.直接linux catalina.out读取:一分每10s轮询出现新的直接读取返回<br>2.缓存注入cookie,先手动登录获取session 然后通过注入user,p ...

  4. Django之动态验证码的生成

    kind.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  5. 修改ThinkPHP的验证码类

    今天用ThinkPHP重新开发一个系统,用到了ThinkPHP的验证码类,由于我希望验证码别太复杂,希望验证码里边只有数字,却发现该Verify类并未提供设置验证码中使用的字符的配置的方法,于是查看源 ...

  6. java的动态验证码单线设计

    1.java的动态验证码我这里将介绍两种方法: 一:根据java本身提供的一种验证码的写法,这种呢只限于大家了解就可以了,因为java自带的模式编写的在实际开发中是没有意义的,所以只供学习一下就可以了 ...

  7. Servlet仿CSDN动态验证码的生成-带数字和字母

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一.实现的思路: (1)首先,须要创建一个Servlet.该Servlet通过字节型响应给cl ...

  8. thinkphp动态注册路由

    thinkphp动态注册路由 一.总结 1.thinkphp使用路由步骤:a.config配置文件中开启路由  b.Route类的rule方法创建路由(在Routephp中)Route::rule(' ...

  9. .NET中生成动态验证码

    .NET中生成动态验证码 验证码是图片上写上几个字,然后对这几个字做特殊处理,如扭曲.旋转.修改文字位置,然后加入一些线条,或加入一些特殊效果,使这些在人类能正常识别的同时,机器却很难识别出来,以达到 ...

随机推荐

  1. 用c++写一个简单的计算器程序

    // 050305.cpp : 定义控制台应用程序的入口点.// // 050304.cpp : 定义控制台应用程序的入口点.////四则运算#include "stdafx.h" ...

  2. The novaclient Python API

    The novaclient Python API Usage First create a client instance with your credentials: >>> f ...

  3. 浅谈oracle10G spfile与pfile(转)

    转自:http://blog.csdn.net/onebigday/article/details/6108348,http://www.linuxidc.com/Linux/2012-11/7371 ...

  4. linux查看父子进程

    python多进程代码 http://blog.csdn.net/yfkiss/article/details/6729364  Linux下多线程查看工具(pstree.ps.pstack) tes ...

  5. python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器

    python3.5 manage.py runserver python Django教程 之模板渲染.循环.条件判断.常用的标签.过滤器 一.Django模板渲染模板 1. 创建一个 zqxt_tm ...

  6. "System Protection" is disabled in Win10 default settings

    We could find some important clue in Restore Point because "System Protection" of volume C ...

  7. MySQL 第七天(核心优化一)

    一.Mysql核心优化 1. 优化的方面 ① 存储层:数据表"存储引擎"选取.字段选取.逆范式(3范式) ② 设计层:索引.分区/分表 ③ 架构层:分布式部署(主从模式/共享) ④ ...

  8. HP_UX HBA 卡信息收集脚本

    #/usr/bin/shname1=`hostname`_fcioscan -kfnNC fc |grep "/dev/" >/tmp/data/$name1.txtnum1 ...

  9. Android之TextView灵活使用(转载)

    在项目中有无遇到过这样一种程况,例如文字"王明今年10岁了", 但是数字10是从网络返回的数据, 而你又想把这个文字写在xml中, 过往我的做法是分成3个TextView, 实现愚 ...

  10. Java编写最大公约数和最小公倍数

    package javaapplication24; class NegativeIntegerException extends Exception{ String message; public ...