# 信呼OA移动端考勤定位打卡报错

- 连结：https://blog.guohao.asia/%e4%bf%a1%e5%91%bcoa%e7%a7%bb%e5%8a%a8%e7%ab%af%e8%80%83%e5%8b%a4%e5%ae%9a%e4%bd%8d%e6%89%93%e5%8d%a1%e6%8a%a5%e9%94%99.html
- 发布时间：2022-09-05T12:12:34+08:00
- 作者：null

中文   英文   韩语   日语

# 信呼 OA 移动端考勤定位打卡报错

在调试移动端考勤定位打卡功能时报错：

    ```language-default
    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` 后报错变成：

    ```language-default
    Fatal error: Call to undefined method weixinClassAction::xssrepstr() in /www/wwwroot/oa/webmain/task/api/weixinAction.php on line 48
    ```

![信呼 OA 移动端考勤定位打卡报错](https://blog.guohao.asia/wp-content/themes/wordpress-
theme-puock-2.8.16/assets/img/z/load.svg "信呼 OA 移动端考勤定位打卡报错")

`xssrepstr`应该是一个通常被 [ 用于特殊字符过滤的自定义函数](https://blog.guohao.asia/wp-content/themes/wordpress-theme-puock-2.8.16/inc/go.php?to=aHR0cHM6Ly93d3cubGlhb3Rhb28uY24vMTcyLmh0bWw=)
^1^：

    ```language-default
    /* 特殊字符过滤 */
        public function xssrepstr($str)
        {$xpd  = explode(',','(,), ,<,&gt;,\\,.,*,&amp;,%,$,^,!,@,#,-,+,:,;\'');
            $xpds = array();
            foreach($xpd as $xpd1)$xpds[]='';
            $str = str_replace(',', '',$str);
            return str_ireplace($xpd, $xpds, $str);
        }
    ```

![信呼 OA 移动端考勤定位打卡报错](https://blog.guohao.asia/wp-content/themes/wordpress-
theme-puock-2.8.16/assets/img/z/load.svg "信呼 OA 移动端考勤定位打卡报错")

在一篇发表于 2021 年 8 月 26 日的题为 [《通读审计之信呼 OA》](https://blog.guohao.asia/wp-content/themes/wordpress-theme-puock-2.8.16/inc/go.php?to=aHR0cHM6Ly93d3cuZnJlZWJ1Zi5jb20vYXJ0aWNsZXMvd2ViLzI4NjM4MC5odG1s)
的文章中，也以及了`xssrepstr`

---

**以上问题，在 v2.3.9 版本中修正，现定位打卡功能已可正常使用。**
