PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题_php实例

最近在设计一款产品,需要POST登录PHPWind,然而众所周知,PHPWind9(以下简称pw9)自身拥有安全策略,详情各位可以自己去phpwind官方论坛看。安全策略的存在会导致即便站长关闭验证码策略依然在登陆时会显示验证码(前提是该用户重试太多次)。

要POST登录,并且不需要验证码,就得处理这个问题,然而官方并没有提供解决的方案,只能依赖自己处理。

首先要明白,phpwind不像众多简单的php程序一般只是简单的该页面代码放置于对应文件中,每一次访问都会调用wekit.php,再由wekit调用插件,应用,服务。分析完毕后,我们就可以解决问题了。

Login,登录部分,在路径.\src\applications\u\controller 下,从文件名不难认出,LoginController.php就是用于登录的部分(这部分其实看着英文名来看就知道)
这时候我们贴出一段代码(后面我给备注了一些内容)

public function run() {
$this->setOutput($this->_showVerify(), 'verify');//验证码显示
$this->setOutput('用户登录', 'title'); //设置页面标题
$this->setOutput($this->_filterUrl(false), 'url');
$this->setOutput(PwUserHelper::getLoginMessage(), 'loginWay');
$this->setOutput($this->getInput('invite'), 'invite');
$this->setTemplate('login');
Wind::import('SRV:seo.bo.PwSeoBo');
$seoBo = PwSeoBo::getInstance();
$lang = Wind::getComponent('i18n');
$seoBo->setCustomSeo($lang->getMessage('SEO:u.login.run.title'), '', '');
Wekit::setV('seo', $seoBo);
}

显而易见,首先我们需要屏蔽掉验证码显示部分。

$this->setOutput($this->_showVerify(), 'verify');//验证码显示

修改成

//$this->setOutput($this->_showVerify(), 'verify');//验证码显示

至此,我们完成了验证码显示的隐藏,但是到这一步你如果登录会发现,居然提示验证码错误,所以我们需要进一步修改,使得更像没有验证码,是的!我们要不论如何都返回验证码成功。

验证码属于服务部分(详情看官方文档),文件在.\src\service\verify\srv中,同样按照文件名可以分辨出PwVerifyService.php就是提供验证码服务的主要文件。

这时候我又贴出一段代码(机遇部分备注内容)

public function checkVerify($verifyType, $code = '') {
return true;
if ($code == '') return false;//如果验证码为空,返回验证码错误
$types = $this->getVerifyType();
if (!array_key_exists($verifyType, $types)) return false;
$verify = $types[$verifyType];
if (!isset($verify['components']['path'])) return false;
$obj = Wekit::load($verify['components']['path']);
if ($obj->checkVerify($code) === true ) return true;
return false;
}

这里我给个简单粗暴的,具体其他方法不多说,想研究自己深入即可。

public function checkVerify($verifyType, $code = '') {
return true; //直接返回true,返回验证码正确
// if ($code == '') return false;
$types = $this->getVerifyType();
if (!array_key_exists($verifyType, $types)) return false;
$verify = $types[$verifyType];
if (!isset($verify['components']['path'])) return false;
$obj = Wekit::load($verify['components']['path']);
if ($obj->checkVerify($code) === true ) return true;
return false;
}

至此,问题解决了。

以上所述是小编给大家介绍的PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索phpwind验证码
phpwind 验证码不显示、phpwind 验证码、phpwind 关闭验证码、php 验证码 实例、struts2 验证码实例,以便于您获取更多的相关知识。

时间: 2024-10-21 08:27:43

PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题_php实例的相关文章

完美解决thinkphp验证码出错无法显示的方法_php实例

本文实例讲述了完美解决thinkphp验证码出错无法显示的方法.分享给大家供大家参考.具体分析如下: 今天做到验证码这一块,想到tp自带验证图片,大喜,但鼓捣半天不出来,一直是个小 X的样子. 官方提示如下:如果无法显示验证码,请检查: ① PHP是否已经安装GD库支持: ② 输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出): ③ Image类库是否正确导入: ④ 如果是中文验证码检查是否有拷贝字体文件到类库所在目录: 但是测试半天,不行!网上找来一个能用的方法,放到一个文件里执行可

解决phpmyadmin中缺少mysqli扩展问题的方法_php实例

phpMyAdmin错误 缺少 mysqli 扩展.请检查 PHP 配置 的解决方案 phpMyAdmin 缺少 mysqli 扩展.请检查 PHP 配置 的解决方案: 缺少 mysqli 扩展.请检查 PHP 配置. 打开你的php.ini->一般在C:WINDOWS目录下. 找到 复制代码 代码如下: ;extension=php_msql.dll ;extension=php_mssql.dll extension=php_mysql.dll extension=php_mysqli.dl

php 解决旧系统 查出所有数据分页的类_php实例

添加了几个自定义的 从mysql result 集合中 抽取指定片段的方法 , 没有调用释放的原因 这个涉及到 程序的 原来校验 也多亏网上大神的帮助啊 .... 老系统害死人啊, 后台都不能动 复制代码 代码如下: <?php /* 分页类 * @author xiaojiong & 290747680@qq.com * @date 2011-08-17 * * show(2) 1 ... 62 63 64 65 66 67 68 ... 150 * 分页样式 * #page{font:1

DEDECMS后台登陆验证码无法显示怎么解决

织梦后台登陆不上提示验证码不正确 1.密码明明正确的,却无法登陆后台管理 解答:此外,不管是新人,还是phper,都要注意的是:用户名和密码只能由 [a-z A-Z - _ @ .] 这些字符组成,不能是中文或其它的符号. 2.验证码明明正确的,就是提示验证码不正确,而无法登陆后台. 解答:我就清空了一下cookies和IE临时文件夹,就可以,如果不行,看下面. 通过FTP进入根目录 修改/data/safe下的inc_safe_config.php 把$safe_gdopen值中的6去掉在登陆

dedecms如何去除后台登陆验证码

用dedecms批量建站一般直接把文件打包复制,然后导入数据库,一个新网站就好了,但有时后台一直无法登录,提示验证码错误.那我们就想怎么把验证码关闭,现在就给大家解决织梦去掉后台登陆验证码.我们知道dedecms后台正常关闭验证是在[系统]→[验证码安全设置]→开启系统验证码,把[后台登陆]前的勾去掉就可以,但这个需要登录后台才能操作.其实只要用心你就会发现,在后台参数里修改验证参数,其实就等于修改网站内部的一个文件,只是在后台操作的选项有限,没有提供更多的修改接口,其实很多东西只是官方觉得没什

phpwind9.0模板制作,论坛风格大开发

  对于每个PHPer而言,最近最高兴的事情莫过于PHPwind9.0的发布,但要搞懂它并进行一定的开发还需要下一番苦功才行.由于论坛模板机制和门户等模板机制不同,所以今天我就先重点讲讲论坛模板制作的大概过程. 一.先来熟悉下phpwind9.0的论坛模板机制. 其实phpwind9.0的模板机制和discuzx2.5差不多,都是程序运行本身自带的默认模板(template内文件),然后如果我们自己设计一套模板放在对应的文件夹中并且后台进行指定的话,那么程序就将运行我们新建的模板风格,官方这样做

phpwind9.0视觉进化论

近日phpwind内部做了一次关于产品视觉方面的主题分享.会上phpwind主视觉设计师王杰同学分享了他在视觉设计中的心得和观念.小编也有幸被邀请旁听分享,在分享会过后本小版还不失时机的即兴采访了王杰同学. 霸气的分享主题:phpwind视觉进化论 小版:王杰您好,您是从什么时候开始负责phpwind产品的视觉设计的?在每个版本的主视觉设计过程中你的设计理念又是怎样的? 王杰:从09年夏天我入职phpwind开始负责phpwind产品的视觉体验设计,很自豪的告诉大家从phpwind7.5到即将上

使用.netFx4.0提供的方法解决32位程序访问64位系统的64位注册表

原文:使用.netFx4.0提供的方法解决32位程序访问64位系统的64位注册表   我们知道目标平台是32位的程序运行在64位的系统上,去访问部分注册表的时候系统自动重定向到win32node节点对应的项去了.但是做过安装程序开发人员可能遇到过"需要去掉重定向"的问题,即直接访问64位程序的注册表. 网上有很多winAPI的方法,关闭注册表的重定向稍微复杂.(关闭文件系统的重定向稍微简单些,搬过来就可以用:关闭注册表的重定向我现在没看懂.) 我这里提供的方法不需要关闭重定向,也不需要

解决ThinkPHP关闭调试模式时报错的问题汇总

  解决ThinkPHP关闭调试模式时报错的问题汇总         本文给大家汇总了一下个人在项目中所遇到的关闭ThinkPHP的调试模式时遇到报错的几种情况以及最终的处理办法,非常的简单实用,这里分享给大家,有需要的小伙伴可以参考下. 案例一: 最近用ThinkPHP开发一个项目,本地开发测试完成上传到服务器后,第一次打开正常,再刷新页面时就出现 "页面调试错误,无法找开页面,请重试"的错误. 我就郁闷啦,明明本地设置define('APP_DEBUG', false) 运行没点问