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

寻觅beyond 寻觅beyond     2022-09-22     175

关键词:

用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框架中,扩展验证码类。

使用CI框架的朋友,应该都知道CI框架的的验证码辅助函数,不太好用。它需要写入到数据库中,然后再进行比对。大家在实际项目中,好像不会这样去使用,因为会对数据库造成一定的压力。所以,我们还是利用session来临时存... 查看详情

如何修复包含的验证码中的错误 addthis

】如何修复包含的验证码中的错误addthis【英文标题】:Howcanifixerrorincaptchaincludedaddthis【发布时间】:2012-09-0805:09:15【问题描述】:我使用javascript创建验证码。这是我的代码:vara=Math.ceil(Math.random()*10);varb=Math.ceil(Math.random()*10);varc... 查看详情

目前所遇问题

1.在无限循环中,如何读取“ ”来达到跳出循环的目的;2.题目的难懂性——无法抓住题目的主题,无法清晰的分析题目;3.知识点的欠缺,基础点不牢固,有点抵抗过去的知识;4.题目的输出格式,总是无法很好的把握; 收... 查看详情

ci框架,参数验证

/***统一API参数检验方法**调用示例check_param(array(‘money‘=>array(‘required‘,‘integer‘,‘greater_than_equal_to[1]‘,‘less_than_equal_to[200]‘)));**@accesspublic*@paramarray$arr*@since1.0*@returnboolean*/publicfu 查看详情

ci框架配置了cas单点登录后出现多重定向问题,怎么解决

参考技术A$this->load->helper('url');redirect('/login/form/','refresh');通过发送HTTP头,命令客户端转向到您指定的URL。既可以指定一个完整的URL,也可以对于站内内容,指定基于网站根目录的相对URL。本函数会自动根... 查看详情

ci框架传递数组到view层问题记录

给大家分享一下在做页面显示天气预报功能中遇到的问题和解决方法!!项目开发中,我用的天气预报API是心知天气的免费接口。关于天气预报接口,可用的有很多,看需求怎么要求了!有兴趣的小伙伴可以链接到这个地址,里... 查看详情

织梦验证码中的字母全改成数字

平常登陆织梦后台验证码是有数字和字母组成的,有时字母经常看不清楚,小编我为了方便登陆,于是把验证码全部改成数字。具体步骤如下:打开include/vdimgck.php查找大概在第87行,删掉一段如下的一段代码:  $chars=‘ab... 查看详情

后盾网-ci框架学习笔记

CI框架:  表单验证:    载入验证类      $this->load->library(‘form_validation‘);    设置规则      $this->form_validation->set_rules(‘name值‘,‘规则‘);    执行验证      $this->form_valida... 查看详情

如何从授权码中获取谷歌身份验证令牌?

】如何从授权码中获取谷歌身份验证令牌?【英文标题】:Howtogetgoogleauthtokenfromauthorizationcode?【发布时间】:2016-04-1312:00:20【问题描述】:我尝试如下获取身份验证令牌:https://accounts.google.com/o/oauth2/token?client_id=xxxxxxxxx&client_s... 查看详情

4月微软补丁kb3146706引起的蓝屏解决方案

....DLL采用了新的HASH,导致老的CI.DLL无法识别,从而认为HASN验证失败,导致蓝屏。从其他计算机copyci.dll文件过来替换即可(路径:c:windowssystem32ci.dll)本文出自“IT学习 查看详情

loongson编译所遇问题

环境:虚拟机VMware+Ubuntu18.04+gcc4.9.3使用gcc4.9.3编译时出错,提示需要运行命令:make-C/work/loongson0103/vUDK2018-loongson/BaseTools//Source/C发现执行以上语句不通过,接着执行以下语句即可解决问题sudoapt-getinstallbuild-essentialuuid-dev 查看详情

如何排除 gitlab-ci.yml 更改触发作业

...描述】:我无法找到解决方案来解决如何忽略.gitlab-ci.yml中所做的更改以触发工作。到目前为止,我已经尝试了以下选项:except:changes:-.gitlab-ci.yml和only-BranchA但每次我在 查看详情

ant-designdatapicker组件所遇问题

参考技术A1datePicker所加的className类名作用的范围是输入框,不能控制展开的下拉框样式2展开的日历框的位置是相对于body,并不在<divid='root'>中,而且层级较高,为1050,超过了Modal组件的层级,官方提供的dropdownClassName... 查看详情

ci框架驱动器(代码片段)

1.驱动器什么是驱动器是一种特殊类型的类库,它有一个父类和任意多个子类。子类可以访问父类,但不能访问兄弟类。在你的控制器中,驱动器为你的类库提供了一种优雅的语法,从而不用将它们拆成很多离散的类。一般我们... 查看详情

大数据工具箱unbutu所遇问题

[toc]前言大家好,我是数据科学与大数据技术的一名大三学生,在三年的学习中也通过自己的努力解决了一些问题,接下来我将为大家介绍我在学习**《大数据工具箱》**这门课程时遇到的一些问题,当你在遇到类... 查看详情

ci框架手册-阅读笔记

ci框架手册来自:CodeIgniter中国官方手册+++++++++++++++++++++++++++++++++++++ 教程-内容提要:  --创建一个简单新闻系统  --教程主要介绍以下技术要点:    1、模型-视图-控制器(Model-View-Controller)基础知识    2、URI... 查看详情

线程基础:多任务处理(13)——fork/join框架(解决排序问题)

...==========接上文《线程基础:多任务处理(12)——Fork/Join框架(基本使用)》3.使用Fork/Join解决实际问题之前文章讲解Fork/Join框架的基本使用时,所举的的例子是使用Fork/Join框架完成1-1000的整数累加。这个示例如果只是演示Fork/Jo... 查看详情

解决ssh中使用struts2验证框架提示错误后正确无法提交的问题

struts和spring整合,因为action由spring进行管理,需要在spring配置文件中设置相对应的action的属性scope="prototype",绝对不能用默认值scope="singleton",设置成scope="prototype"相当于每次都会去new一个实例,否则用一个... 查看详情