CI框架2.x的验证码中所遇问题解决
用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的验证码中所遇问题解决的更多相关文章
- 在nginx下去掉ci框架url中的index.php
		
ci框架默认的url规则中带有应用的入口文件,例如: example.com/index.php/news/article/my_article 在以上URL中带有入口文件index.PHP,这样的U ...
 - CI框架简单使用
		
CodeIgniter框架 1.回忆MVC 1.1.M:模型,提供数据,保存数据 1.2.V:视图,只负责显示,表单form 1.3.C:控制器,协调模型和视图 1.4.action:动作,是控制器中 ...
 - 【CI3.1】CI框架简单使用方法
		
CI框架简单使用方法 1.回忆MVC 1.1.M:模型,提供数据,保存数据 1.2.V:视图,只负责显示,表单form 1.3.C:控制器,协调模型和视图 1.4.action:动作,是控制器中的方法 ...
 - CodeIgniter(CI)框架中的验证码
		
在CodeIgniter框架中,CI本身自带了验证码,但是查看文档的时候,发现: 需要新建一个表,用来存储验证码信息.因为习惯了session存储验证码信息,所以我把我认为比较好看的验证码应用在了CI ...
 - CI框架中,扩展验证码类。
		
使用CI框架的朋友,应该都知道CI框架的的验证码辅助函数,不太好用.它需要写入到数据库中,然后再进行比对. 大家在实际项目中,好像不会这样去使用,因为会对数据库造成一定的压力. 所以,我们还是利用se ...
 - php CI框架实现验证码功能和增强验证码安全性实战教程
		
php CI框架实现验证码功能和增强验证码安全性实战教程 CodeIgniter简称CI是最流行的一个php MVC框架之一,本人讲从实际项目使用中写系列实战经验,有别与其他的理论讲解文章,会附上实战 ...
 - CI 框架中的自定义路由规则
		
在 CI 框架中,一个 URL 和它对应的控制器中的类以及类中的方法是一一对应的,如: www.test.com/user/info/zhaoyingnan 其中 user 对应的就是控制器中的 us ...
 - CI框架中自定义view文件夹位置
		
要想自定义view文件夹的位置,首先要了解CI框架时如何加载view文件夹的. CI中默认调用view的方法是: $this->load->view(); //这一行代码的原理是什么呢?请 ...
 - CI框架在模型中切换读写库和读写库
		
如果你想在控制器中切换在application/config/database.php中配置好的数据库group,那么你可以参考这篇博客:CI框架在控制器中切换读写库和读写库 如果你是希望在模型中切换 ...
 
随机推荐
- 让你提前认识软件开发(31):数据库脚本中的begin与end
			
版权声明:本文为博主原创文章.对文章内容有不论什么意见或建议,欢迎与作者单独交流.作者QQ(微信):245924426. https://blog.csdn.net/zhouzxi/article/d ...
 - eclipse 右键发现没有 build-path
			
1)确认下是否有.project和.classPath文件 2)点击右上角按钮先切换到java下,默认方式是javaEE 然后就能出现build path了 这是build path 子项为灰色,依然 ...
 - 【转】避免全表扫描的sql优化
			
对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描:· 使用ANALYZE TABLE tbl_name为扫 ...
 - day16 Python 函数嵌套函数和作用域
			
#函数的作用域只跟函数声明时定义的作用域有关,跟函数的调用位置无任何关系 name = 'alex' def foo(): name='linhaifeng' def bar(): #name='wu ...
 - 关于Java并发编程的总结和思考
			
编写优质的并发代码是一件难度极高的事情.Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更 ...
 - 我是怎样和Linux系统结缘并通过红帽RHCE认证的
			
我高考完当时就是选择的计算机科学与技术专业,上大学以后联想到的和计算机相关的就只有写代码,开发,网站,网页设计,就没有其他的了,当时学习写代码也都是在Windows上,什么C#.C++之类的?大约在大 ...
 - Omi框架学习之旅 - 组件 及原理说明
			
hello world demo看完后其实基本的写法就会了. 但是omi中的组件是神马鬼?其实我也不知道组件是啥. 百度百科是这么说的: 是对数据和方法的简单封装.es6中,一个类其实也可以做到对方法 ...
 - python wsgi 简介
			
wsgi全称是"Web Server Gateway Interfacfe",web服务器网关接口,wsgi在python2.5中加入,是web服务器和web应用的标准接口,任何实 ...
 - https原理简析
			
[转]http://www.cnblogs.com/carsonzhu/p/5225778.html HTTPS的工作原理 HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手 ...
 - VS2017上执行VS2013项目错误MSB802之解决方案
			
进行想把我编写的数字图像处理软件MagicHouse更新到最新的VS2017开发环境下,原来的开发环境是VS2013.但是用VS2017打开项目并编译时,系统报错误MSB802,如下图所示. 其实Vi ...