PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > ThinkPhp教程 > 正文

    ThinkPHP3.1.3验证码原理以及解决方案

    作者:w634381967来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:ThinkPHP3.1.3在文档中对验证码的描述比较简单,这里主要说一下我自己对TP验证码的理解ThinkPHP有自己带的验证码API,调用起来很方便。代码...
    ThinkPHP3.1.3在文档中对验证码的描述比较简单,这里主要说一下我自己对TP验证码的理解
    ThinkPHP有自己带的验证码API,调用起来很方便。代码如下:
    Public function verify(){
        import('ORG.Util.Image');
        Image::buildImageVerify();
    }
    调用原理比较简单,主要是在ThinkPHP\Extend\Library\ORG\Util\Image.class.php和ThinkPHP\Extend\Library\ORG\Util\String.class.php中。
    主要是调用Image.class.php内的静态方法buildImageVerify(),再用String.class.php类内生成验证码,然后再通过php生成一张图片,以header的方式返回给浏览器而已。

    核心代码如下(我用的tp版本在这个函数内有个bug,是验证码区分大小写,我自己改了一下):
    import('ORG.Util.String');
    $randval = String::randString($length, $mode);
    session($verifyName, md5(strtolower($randval)));
    生成的验证码是以session的形式存储在$randval中的,$randval默认值为verify。

    如果需要是每次在提交的时候在后台进行验证码验证确实非常简单,判断一下md5值是否一样就可以了。但是从人机交互方面考虑,这样的设计对于用户来言是非常不方便的。比较普遍的验证码机制是在输入验证码以后,在前台立即就能够显示验证码是否正确。
    附件中给出了普遍设计的解决方案代码,是从项目中提出的,不能直接使用,仅供思路参考。
    菜鸟一个,还望各位大大指点~

    下载:
    tp验证码解决方案.zip
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-83-1051-1.html
    相关热词搜索: ThinkPHP3.1.3 验证码