PHPWind9.0 如何手动屏蔽验证码提示功能

本文介绍如何在PHPWind论坛系统中禁用登录时的验证码功能。通过修改LoginController.php和PwVerifyService.php两个文件,实现登录时跳过验证码验证的过程。

改两个部分:

1、在linux 机器上面执行命令找到文件LoginController.php

[root@bogon ~]# find / -name "LoginController.php" 
/usr/local/apache2/htdocs/phpwind/src/applications/u/controller/LoginController.php---找到对应的文件地址

Login,登录部分,在路径.\src\applications\u\controller 下,从文件名不难认出,LoginController.php就是用于登录的部分

1
2
3
4
5
6
7
8
9
10
11
12
13
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 );
}

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

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

修改成

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

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


2、在linux 系统上面执行命令找到文件PwVerifyService.php

[root@bogon ~]# find / -name "PwVerifyService.php"
/usr/local/apache2/htdocs/phpwind/src/service/verify/srv/PwVerifyService.php------找到对应的文件地址

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

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

?
1
2
3
4
5
6
7
8
9
10
11
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;
}

解决方法:方法一:注释掉这行// if ($code == '') return false;  方法二:if ($code == '')  return true;

?
1
2
3
4
5
6
7
8
9
10
11
方法一:
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;}

 方法二:
  public function checkVerify($verifyType, $code = '') {
  if ($code == '')  return true;
 $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;
    }



至此,问题解决了。



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值