新聞中心
Ecshop程序如何避免會員注冊后登陸出現(xiàn)用戶名亂碼的方法
今天小編再次遇到了關(guān)于Ecshop程序的另一個升級后的Bug,當(dāng)會員在網(wǎng)站注冊了一個會員,也提示注冊成功了。但是當(dāng)在網(wǎng)站輸入注冊的用戶名密碼成功登陸后有的時候卻很奇怪,登陸后的會員名會出現(xiàn)亂碼的現(xiàn)象,那么這究竟是什么原因?qū)е碌哪??小編開始也是百思不得其解呀,也排除了無憂主機php空間的問題,無奈之下小編登陸了Ecshop的官網(wǎng)翻閱了一些資料對比之下發(fā)現(xiàn)了果然是升級后才會有的Bug,之前的版本2.7.2是不會出現(xiàn)類似的問題的,就是升級到了2.7.3版本之后才會出現(xiàn)的問題呢。關(guān)于官網(wǎng)說的是覆蓋升級文件說的比較模糊,看了也是讓人無從下手呢。那么該如何才能有效的阻止下次再遇到類似的問題呢?小編開始登陸了phpmyadmin查看了數(shù)據(jù)庫里面的會員信息是不是亂碼的,經(jīng)查閱后發(fā)現(xiàn)數(shù)據(jù)庫里面的會員用戶名也是亂碼的了。那么是什么原因?qū)е聦懭霐?shù)據(jù)庫的也會亂碼呢?原來為了防止Sql注入,在會員提交的注冊的那一刻是經(jīng)過了一個函數(shù)htmlentities過濾的了。而正是此過濾函數(shù)導(dǎo)致在Ecshop升級后不兼容導(dǎo)致了亂碼現(xiàn)象了。已經(jīng)知道了原因解決就簡單多了,小編來說下解決的方法吧。 第一步:首先找到/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的老版本是不需要改的,一般出現(xiàn)問題的都是從網(wǎng)站的后臺升級到2.7.3的版本才會出現(xiàn)這樣的bug呢。所以站長朋友們平時遇到的時候多注意下也就解決了哦。 無憂主機相關(guān)文章推薦閱讀: ECSHOP后臺如何批量處理圖片 ECSHOP后臺如何將商品批量導(dǎo)出 如何有效調(diào)整ECSHOP首頁FLASH播放器的速度 ECSHOP程序如何在網(wǎng)站后臺修改商品名稱的長度
本文地址:http://www.gle-technology.com/ecshop/18020.html