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框架在控制器中切换读写库和读写库 如果你是希望在模型中切换 ...
随机推荐
- Django urls 路由
写url和视图的的对应关系 from django.conf.urls import url from django.contrib import admin from app名 import vie ...
- 从源码的角度分析List与Set的区别
很多时候我们在讨论List与Set的异同点时都在说: 1.List.Set都实现了Collection接口 2.List是有序的,可以存储重复的元素,允许存入null 3.Set是无序的,不允许存储重 ...
- 3D数学读书笔记——矩阵基础
本系列文章由birdlove1987编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/24975031 矩 ...
- UVA10129-Play on Words(欧拉路径)
Problem UVA10129-Play on Words Accept: 2534 Submit: 19477 Time Limit: 3000 mSec Problem Description ...
- spring MVC 使用 hibernate validator验证框架,国际化配置
spring mvc使用hibernate validator框架可以实现的功能: 1. 注解java bean声明校验规则. 2. 添加message错误信息源实现国际化配置. 3. 结合sprin ...
- python对word的操作
from docx import Document from docx.shared import Inches document = Document() document.add_heading( ...
- PAT A1106 Lowest Price in Supply Chain (25 分)——树的bfs遍历
A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...
- linux公钥和私钥生成
1. 路径 cd /root/.ssh 2. 输入命令 ssh-keygen -t rsa 按三次回车 3. 会依次生成 id_rsa 私钥和 id_rsa.pub 公钥 [root@insure ...
- MySQL 基础二 创建表格
1.界面创建 2.SQL创建 教程地址:http://blog.csdn.net/brucexia/article/details/53738596 提供学习视频下载 链接:http://pan.ba ...
- ubuntu 用remastersys 备份系统并且安装
sudo add-apt-repository ppa:mutse-young/remastersys 2.更新系统软件源 sudo apt-get update 3.更新完了,先安装remaster ...