码迷,mamicode.com
首页 > 其他好文 > 详细

CI框架2.x的验证码中所遇问题解决

时间:2017-10-07 17:48:53      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:path   test   rand   fun   png   报错   应该   pat   php7   

用php版本是5.6,CI框架版本是2.x,在使用验证码(captcha)时,遇到一些问题。

首先,我查看框架手册,说必需的两个参数是"img_url",“img_path”,其他的参数都可以省略,但是,我在使用的时候,如果只指定这两个参数,一运行就会报错,

错误信息显示没有word_length,word,还有0作为除数。

然后我就在验证码配置数组中加上一个‘word_length‘=>8,然后运行,但是依旧有错误,查看错误信息,依旧是word_length未定义

然后我在配置数组中加上‘’word‘’=>‘test‘,然后一运行,结果顺利通过,显示一个验证码为test的图片。

但是,我不可能每次都制定验证码内容吧,然后我就查看源码,在system/helpers/captcha_helper.php中,其中的定义了一个函数,名称就是create_captcha()

技术分享

可以看到,源码中,并没有word_length这一属性,以及默认值,于是我在$default中加上‘word_length‘=>8,然后运行,结果呢,还是失败,因为浏览器一直在转圈,结果一直不显示,证明进了死胡同,然后我就接着看源码,发现下面的一个函数(random_int)

技术分享

这段代码是用来生成word的,如果word为空就产生word,但是你也应该看到有一行提示,php7,这就比较有趣了,我去php手册查了一下,random_int()是php7新加入的一个生成随机数的函数,手册上说php5.2-5.6也包含,但是我在另外一个脚本用function_exists("random_int"),结果这个函数没有。

应该是这个函数惹的祸吧,然后我就尝试把这个脚本中的random_int全改为mt_rand,然后一测试,完美通过,看来应该是版本问题,如果你有更好的见解,欢迎留言

CI框架2.x的验证码中所遇问题解决

标签:path   test   rand   fun   png   报错   应该   pat   php7   

原文地址:http://www.cnblogs.com/-beyond/p/7635034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!