thinkphp验证码实现。

做为我大天朝的程序员,若是不会点thinkphp框架确实有点说不过去了(虽然做为菜鸟的我才入坑没几个月)。不过不会也不要紧,很简单的一个php框架。今天为你们介绍的是thinkphp如何实现验证码的功能。php

thinkphp自带验证码功能,咱们直接调用就好了。发展到如今thinkphp已经有好几个正式版本了,最新的版本是thinkphp5.0。今天我将给你们介绍一下5的版本和3的版本。html

thinkphp3的版本:程序员

第一步:在咱们相对应的控制器建立一个输出验证码方法ajax

public function verify()
{
    $Verify = new \Think\Controller\Verify();
    $Verify->fontSize = 20; // 字体大小
    $Verify->length = 6; // 多少个字符
    $Verify->useNoise = false; // 是否添加杂点
    $Verify->imageW = 233; // 验证码宽度
    $Verify->imageH = 50; // 验证码高度
    $Verify->entry();
}

第二步:在页面输出咱们的验证码thinkphp

<img src="{:U('Admin/verify')}" class="verifyCode" name="admin_verify" title="点击刷新验证码">

完成以上的操做便可。接下来,咱们开始实现附加功能。php框架

第一个点击验证码实现刷新(其实就是使用一个ajax方法再去从新加载一次图片输出而已):在咱们的js中写入以下方法。框架

var verifyImg = $(".verifyCode");
var verifyPath = verifyImg.attr("src");
verifyImg.click(function () {
if (verifyPath.indexOf("?")>0) {
$(this).attr("src", verifyPath+'&random='+Math.random());
}else{
$(this).attr("src", verifyPath.replace(/\?.*$/,' ')+'?'+Math.random());
}
)})
// 或者直接不单独写js方法,直接给图片添加一个点击事件
<img src="{:U('Admin/verify')}" class="verifyCode" name="admin_verify" title="点击刷新验证码" onclick="this.src=\'' .{:U('Admin/verify')}. '?id=\'+Math.random();">

第二个就是后台验证咱们的验证码正确性:先建立一个公共的验证函数(公共的配置函数文件是在common下面,可定义在项目的公共目录也可在模块的功能目录),在再咱们接受用户信息提交的地方作验证并将错误信息反馈给用户。dom

// 公共的验证函数(建议放在项目的公共目录中,便于多个模块调用)
// 公共函数在系统中能够直接使用
function
check_verify($code, $id = ""){ $verify = new \Think\Verify(); return $verify->check($code, $id); }
// 接收页面传入的填写的验证码值
$data['admin_verify'] = I('post.admin_verify');
if (check_verify($data['admin_verify'])) {
    $this->error("验证码不正确", U("login"), 3);
}

 thinkphp5的版本:函数

thinkphp5是一个历史性的变革,这里就不单独为你们介绍了。直接放大招了。thinkphp5

第一步:在咱们的配置文件(config.php)中直接配置以下内容

/**
*须要开启url路由:'url_route_on' => true,
*/
'captcha'  => [
        // 验证码字符集合
        'codeSet'  => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY', 
        // 验证码字体大小(px)
        'fontSize' => 25, 
        // 是否画混淆曲线
        'useCurve' => true, 
         // 验证码图片高度
        'imageH'   => 30,
        // 验证码图片宽度
        'imageW'   => 100, 
        // 验证码位数
        'length'   => 5, 
        // 验证成功后是否重置        
        'reset'    => true
],

 

第二步:在咱们的模板文件中输出便可

// 方式一(建议采用该方式)
<img src="{:captcha_src()}" alt="captcha" />
// 方式二
{:captcha_img()}

 

对比thinkphp3的版本,咱们一样实现其余附加的功能。

第一个点击刷新:这里和thinkphp3的版本一致,就不单独介绍了。

第二个就是验证码验证:这里能够使用咱们tp5内置的验证(建议),也可采用自定义验证。

// 内置验证
$this
->validate($data,[ 'captcha|验证码'=>'require|captcha' ]);
// 自定义验证
if
(!captcha_check($captcha)){ //验证失败 };

自此thinkphp经常使用的版本在验证码的功能上已经介绍完了,不知道你还有什么问题没?若是有什么问题能够即时反馈本邮箱(18228937997@163.com),能够在文章下方留言。随时欢迎你们的骚扰。

 下面的连接是本人在使用thinkphp碰见的问题,但愿对你有所帮助。http://www.cnblogs.com/qqblog/p/6639653.html

相关文章
相关标签/搜索