信呼OA移动端考勤定位打卡报错
在调试移动端考勤定位打卡功能时报错:
Fatal error: Uncaught Error: Call to undefined method weixinClassAction::xssrepstr() in /www/wwwroot/oa/webmain/task/api/weixinAction.php:48 Stack trace: #0 /www/wwwroot/oa/include/View.php(42): weixinClassAction->addlocationAction() #1 /www/wwwroot/oa/api.php(39): include_once('/www/wwwroot/oa...') #2 {main} thrown in /www/wwwroot/oa/webmain/task/api/weixinAction.php on line 48
在移动端app、企业微信内置浏览器、第三方浏览器中该问题复现。
将PHP版本由php7.0
降级到php5.6
后报错变成:
Fatal error: Call to undefined method weixinClassAction::xssrepstr() in /www/wwwroot/oa/webmain/task/api/weixinAction.php on line 48
xssrepstr
应该是一个通常被用于特殊字符过滤的自定义函数^1^:
/* 特殊字符过滤 */
public function xssrepstr($str)
{
$xpd = explode(',','(,), ,<,>,\\,.,*,&,%,$,^,!,@,#,-,+,:,;\'');
$xpds = array();
foreach($xpd as $xpd1)$xpds[]='';
$str = str_replace(',', '',$str);
return str_ireplace($xpd, $xpds, $str);
}
在一篇发表于2021年8月26日的题为《通读审计之信呼OA》的文章中,也以及了xssrepstr
以上问题,在v2.3.9版本中修正,现定位打卡功能已可正常使用。