您好,欢迎访问一九零五行业门户网

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

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 ( 2.71 kb 下载:53 次 )
ad:真正免费,域名+虚机+企业邮箱=0元
其它类似信息

推荐信息