报错compile_str() flow.php on line 375的解决方法

flow.php line 375,flow.php  找到375行:

         * 保存收货人信息
         */
        $consignee = array(
            ‘address_id‘    => empty($_POST[‘address_id‘]) ? 0  :   intval($_POST[‘address_id‘]),
            ‘consignee‘     => empty($_POST[‘consignee‘])  ? ‘‘ :   compile_str(trim($_POST[‘consignee‘])),
            ‘country‘       => empty($_POST[‘country‘])    ? ‘‘ :   intval($_POST[‘country‘]),
            ‘province‘      => empty($_POST[‘province‘])   ? ‘‘ :   intval($_POST[‘province‘]),
            ‘city‘          => empty($_POST[‘city‘])       ? ‘‘ :   intval($_POST[‘city‘]),
            ‘district‘      => empty($_POST[‘district‘])   ? ‘‘ :   intval($_POST[‘district‘]),
            ‘email‘         => empty($_POST[‘email‘])      ? ‘‘ :   compile_str($_POST[‘email‘]),
            ‘address‘       => empty($_POST[‘address‘])    ? ‘‘ :   compile_str($_POST[‘address‘]),
            ‘zipcode‘       => empty($_POST[‘zipcode‘])    ? ‘‘ :   compile_str(make_semiangle(trim($_POST[‘zipcode‘]))),
            ‘tel‘           => empty($_POST[‘tel‘])        ? ‘‘ :   compile_str(make_semiangle(trim($_POST[‘tel‘]))),
            ‘mobile‘        => empty($_POST[‘mobile‘])     ? ‘‘ :   compile_str(make_semiangle(trim($_POST[‘mobile‘]))),
            ‘sign_building‘ => empty($_POST[‘sign_building‘]) ? ‘‘ :compile_str($_POST[‘sign_building‘]),
            ‘best_time‘     => empty($_POST[‘best_time‘])  ? ‘‘ :   compile_str($_POST[‘best_time‘]),
        );

这里代码多了个函数 compile_str。 改函数是ecshop最新补丁新加入进入的。原本的这块代码是

           ‘address_id‘    => empty($_POST[‘address_id‘]) ? 0  : intval($_POST[‘address_id‘]),
            ‘consignee‘     => empty($_POST[‘consignee‘])  ? ‘‘ : trim($_POST[‘consignee‘]),
            ‘country‘       => empty($_POST[‘country‘])    ? ‘‘ : $_POST[‘country‘],
            ‘province‘      => empty($_POST[‘province‘])   ? ‘‘ : $_POST[‘province‘],
            ‘city‘          => empty($_POST[‘city‘])       ? ‘‘ : $_POST[‘city‘],
            ‘district‘      => empty($_POST[‘district‘])   ? ‘‘ : $_POST[‘district‘],
            ‘email‘         => empty($_POST[‘email‘])      ? ‘‘ : $_POST[‘email‘],
            ‘address‘       => empty($_POST[‘address‘])    ? ‘‘ : $_POST[‘address‘],
            ‘zipcode‘       => empty($_POST[‘zipcode‘])    ? ‘‘ : make_semiangle(trim($_POST[‘zipcode‘])),
            ‘tel‘           => empty($_POST[‘tel‘])        ? ‘‘ : make_semiangle(trim($_POST[‘tel‘])),
            ‘mobile‘        => empty($_POST[‘mobile‘])     ? ‘‘ : make_semiangle(trim($_POST[‘mobile‘])),
            ‘sign_building‘ => empty($_POST[‘sign_building‘]) ? ‘‘ : $_POST[‘sign_building‘],
            ‘best_time‘     => empty($_POST[‘best_time‘])  ? ‘‘ : $_POST[‘best_time‘],

该函数是为补漏洞的。 在文件lib_base.php 776行。

/**
 * 过滤用户输入的基本数据,防止script攻击
 *
 * @access      public
 * @return      string
 */
function compile_str($str)
{
    $arr = array(‘<‘ => ‘<‘, ‘>‘ => ‘>‘);
    return strtr($str, $arr);
}
该函数是为补漏洞的。 过滤用户输入的基本数据,防止script攻击!所以如果网站提示缺少此函数,直接补个函数就可以了。贴在flow.php底部,问题就解决了
时间: 2024-10-10 17:08:40

报错compile_str() flow.php on line 375的解决方法的相关文章

报错:Could not launch &#39;app name&#39;,解决方法

如果你也出現了“Could not launch 'app name'”,No such file or directory (/Users/apple/Library/Developer/Xcode/DerivedData/mytest-ejkagqxooxgmtdfsdoygtyzflibe/Build/Products/Debug-iphoneos/mytest.app/mytest) 这样的讯息的話,有几个处理方法1.刪除DerivedData資料夾法1.1 完全离开Xcode,然后再做

python中引入包的时候报错AttributeError: module &#39;sys&#39; has no attribute &#39;setdefaultencoding&#39;解决方法?

python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdefaultencoding('utf-8') AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法: 1.python2中解决方法:reload(sys)sys.setdefaultencoding('utf-8'

python 编码报错问题 &#39;ascii&#39; codec can&#39;t encode characters 解决方法

python在安装时,默认的编码是ascii, 当程序中出现非ascii编码时,python的处理常常会报这样的错 'ascii' codec can't encode characters python没办法处理非ascii编码的, 此时需要自己设置将python的默认编码,一般设置为utf8的编码格式. 查看python的默认编码 print sys.getdefaultencoding() 解决方法一(已通过验证,顺带也解决了我之前字符前一直加u的问题) 在python安装目录下,进入\P

Centos6 下启动httpd报错 Could not reliably determine the server&#39;s解决方法

在启动httpd的时候报错: 修改/etc/httpd/conf/httpd.conf 配置,去掉ServerName 前的#(或者手动添加ServerName localhost:80)然后重启httpd服务: Centos6 下启动httpd报错 Could not reliably determine the server's解决方法

keil 通过JTAG下载程序 报错:error: flash download failed - &quot;cortex-m3&quot;的解决方法

硬件环境: nxp lpc1788fbd208核心板 软件环境: keil uvision4 segger j-flash arm v4.50 其他: 芯片选择正确 jtag模式 现象:之前用JFlashARM.exe下载了程序,在没有擦除程序的情况下,JTAG模式下用keil下载程序 报错 error: flash download failed - "cortex-m3" 原因:用jFlashARM.exe下载程序后,没有擦除程序 解决:擦除lpc1788 上的程序,然后在keil

很爽的一点。用Mysql5.x以上版本出现报错#1929 Incorrect datetime value: &#39;&#39; for column &#39;createtime&#39; 解决方法

我的mysql安装后,保存删除表数据总是出现#1929 Incorrect datetime value: '' for column 'createtime' 的报错提醒,导致不能删除表里数据: 原因: 5以上的版本如果时期时间是空值应该要写NULL: 官方解释说:得知新版本mysql对空值插入有"bug", 要在安装mysql的时候去除默认勾选的enable strict SQL mode 那么如果我们安装好了mysql怎么办了,解决办法是更改mysql中的配置 my.ini 解决

maven, install 时候报错“编码 gbk 的不可映射字符”的解决方法

myeclipse maven, install 时候报错"编码 gbk 的不可映射字符" 报错的原因是compiler采用了GBK编码,而源代码设置的是utf8编码导致编译的时候无法正确解析源码,解决方法很简单,在pom的compiler插件配置处加入<encoding>utf8</encoding> 即可,如下: <build>        <plugins>            <plugin>           

支付宝 报错 rsa_private read error : private key is NULL解决方法

原因:  真机调试IOS支付宝功能GDB出现 rsa_private read error : private key is NULL提示 调试iOS 支付宝SDK的时候,运行demo,把Partner(合作商户 ID)Seller(账户 ID)RSA public key(支付宝公钥)RSA private key(商户私钥) 都放到plist文件了,运行的时候,报错 rsa_private read error : private key isNULL 我确定的是RSA private ke

转:loadruner报错:Step download timeout(120 seconds)的一个解决方法

一个网友问了我一个问题如下:loadruner报错:Error -27728: Step download timeout (120 seconds) 如何解决语法检查通过,但是在并发执行一个查询时候报错Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s),请问有啥子解决方法,我使用web_set_timeout ,好象不起作用,直接