ECSHOP数据库存储时出现乱码的解决办法

本文深入探讨了在使用ECSHOP进行网站开发时,遇到的数据库乱码问题。重点分析了问题根源在于ECSHOP内部处理方式中的htmlentities函数,并提供了通过更换为htmlspecialchars函数来解决乱码问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有朋友在DIV修改ECSHOP时,有时会需要在数据库中加入一些字段,可能在存储过程中会遇到乱码问题,要找出这个问题的原因,还真是要花些时间, 因为一开始都会想到是编码的原因, 方向错了, 自然是越走越远了,

问题出在ECSHOP在把资料放进数据库时, 经过了htmlentities的处理, 防止javascriptr的恶意输入,
文件位于/includes/lib_passport.php第165行:
原代码: $other[$key] = htmlentities($val); //防止用户输入javascript代码

只要把htmlentities换成htmlspecialchars就OK 了

$other[$key] = htmlspecialchars($val); //防止用户输入javascript代码
另一个文件位于/includes/lib_transaction.php第85行:
原代码: $profile['other'][$key] = htmlentities($val); //防止用户输入javascript代码
修改后的代码为:
$profile['other'][$key] = htmlspecialchars($val); //防止用户输入javascript代码

ECSHOP在其他场合下是用htmlspecialchars的, 这两个函数功能基本一样, 只是对中文的处理结果不同.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值