新闻中心
Ecshop程序如何避免会员注册后登陆出现用户名乱码的方法
作者 / 无忧主机 时间 2014-12-22 15:27:07
今天小编再次遇到了关于Ecshop程序的另一个升级后的Bug,当会员在网站注册了一个会员,也提示注册成功了。但是当在网站输入注册的用户名密码成功登陆后有的时候却很奇怪,登陆后的会员名会出现乱码的现象,那么这究竟是什么原因导致的呢?小编开始也是百思不得其解呀,也排除了无忧主机php空间的问题,无奈之下小编登陆了Ecshop的官网翻阅了一些资料对比之下发现了果然是升级后才会有的Bug,之前的版本2.7.2是不会出现类似的问题的,就是升级到了2.7.3版本之后才会出现的问题呢。关于官网说的是覆盖升级文件说的比较模糊,看了也是让人无从下手呢。那么该如何才能有效的阻止下次再遇到类似的问题呢?小编开始登陆了phpmyadmin查看了数据库里面的会员信息是不是乱码的,经查阅后发现数据库里面的会员用户名也是乱码的了。那么是什么原因导致写入数据库的也会乱码呢?原来为了防止Sql注入,在会员提交的注册的那一刻是经过了一个函数htmlentities过滤的了。而正是此过滤函数导致在Ecshop升级后不兼容导致了乱码现象了。已经知道了原因解决就简单多了,小编来说下解决的方法吧。 第一步:首先找到/includes/lib_passport.php第173行代码
$other[$key] = htmlentities(trim($val));替换为:
$other[$key] = htmlspecialchars(trim($val));如果没有bug的此行代码和小编改过的相同就说明该程序的版本是2.7.2的不需要修改了。 第二步:按照目录找到/includes/lib_transaction.php文件在大概85行代码
$profile['other'][$key] = htmlentities(trim($val));修改为:
$profile['other'][$key] = htmlspecialchars(trim($val));改好了这两个文件然后传到根目录下覆盖就可以了。小编在此提示下如果是2.7.2的老版本是不需要改的,一般出现问题的都是从网站的后台升级到2.7.3的版本才会出现这样的bug呢。所以站长朋友们平时遇到的时候多注意下也就解决了哦。 无忧主机相关文章推荐阅读: ECSHOP后台如何批量处理图片 ECSHOP后台如何将商品批量导出 如何有效调整ECSHOP首页FLASH播放器的速度 ECSHOP程序如何在网站后台修改商品名称的长度
本文地址:https://www.51php.com/ecshop/18020.html