zoukankan      html  css  js  c++  java
  • ThinkPHP验证码的使用

    要使用验证码,需要导入扩展类库中的ORG.Util.Image类库和ORG.Util.String类库。我们通过在在模块类中增加一个verify方法来用于显示验证码:

    Public function verify(){
        import('ORG.Util.Image');
        Image::buildImageVerify();
    }
    

     Image类的buildImageVerify方法用于生成验证码,

    buildImageVerify 生成图像验证码
    用法 buildImageVerify($length,$mode,$type,$width,$height,$verifyName)
    用法 length 验证码的长度,默认为4位数
    model 验证字符串的类型,默认为数字,其他支持类型有0 字母 1 数字 2 大写字母 3 小写字母 4中文 5混合
    type 验证码的图片类型,默认为png
    width 验证码的宽度,默认会自动根据验证码长度自动计算
    height 验证码的高度,默认为22
    verifyName 验证码的SESSION记录名称,默认为verify

    定义完成后,验证码的显示只需要在模板文件中添加:

    <img src='__APP__/Public/verify/' />
    

     运行后可以看到类似下面的验证码显示:

    每次生成验证码的时候,就会通过SESSION记录本次的验证码的md5后的字符串信息,所以,要检查验证码是否正确,我们只需要在Action中使用下面的代码就行了:

    if($_SESSION['verify'] != md5($_POST['verify'])) {
       $this->error('验证码错误!');
    }
    

     注意,这里的verify名称取决于你的验证码的verifyName参数的值。BuildImageVerify方法不支持中文验证码的显示,如果需要显示中文验证码,请使用
    GBVerify方法,参数如下:

    GBVerify生成中文验证码
    用法 GBVerify ($length,$type,$width,$height,$fontface,$verifyName)
    参数 length:验证码的长度,默认为4位数
    type:验证码的图片类型,默认为png
    width:验证码的宽度,默认会自动根据验证码长度自动计算
    height:验证码的高度,默认为50
    fontface:使用的字体文件,使用完整文件名或者放到图像类所在的目录下面,默认使用的字体文件是simhei.ttf(该文件可以从window的Fonts目录下面找到
    verifyName:验证码的SESSION记录名称,默认为verify

    用法示例:

    Public function verify(){
        import("ORG.Util.Image");
        Image::GBVerify();
    }
    

     显示效果如下:

    如果无法显示验证码,请检查:
    PHP是否已经安装GD库支持;(更改配置后需要重启apache)
    输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出);
    Image类库是否正确导入;
    如果是中文验证码检查是否有拷贝字体文件到类库所在目录;

    解决IE中点击刷新验证码后缓存问题:

    <img src='__APP__/Public/code/' onclick="this.src=this.src+'?'+Math.random()" alt="点击刷新验证码" title="点击刷新验证码"/>
    
  • 相关阅读:
    53. Maximum Subarray
    64. Minimum Path Sum
    28. Implement strStr()
    26. Remove Duplicates from Sorted Array
    21. Merge Two Sorted Lists
    14. Longest Common Prefix
    7. Reverse Integer
    412. Fizz Buzz
    linux_修改域名(centos)
    linux_redis常用数据类型操作
  • 原文地址:https://www.cnblogs.com/Hebe/p/3051692.html
Copyright © 2011-2022 走看看