目前 ZenCart 最新版本是 1.5.1,在 1.5 版本后,ZenCart 就多了一項密碼保護功能,后臺的密碼只能使用 90 天,90 天后自動過期。
這是強制人家修改密碼,我覺得這功能有點雞肋,而且很添亂,會修改密碼的會很神經質的經常修改,像我這樣不修改密碼的,都是可悲的什么時候過期都忘記了,最最郁悶的是,它的數據庫中的 md5 密碼還加后綴,不是隨便復制個通用的密碼就可以用,所以每次我只能看著后臺那個簡陋的登陸界面抓耳撓腮。
今天已經是第三次遇到這個問題了,于是我決定把方法記錄下來。
方法還是復制通用的密碼的 MD5 格式,官方提供的。進入 phpMyAdmin,在對應的數據庫下運行下面的 SQL 語句:
DELETE FROM admin WHERE admin_name = 'Admin';
INSERT INTO admin (admin_name, admin_email, admin_pass, admin_profile)
VALUES ('Admin', 'admin@localhost', '351683ea4e19efe34874b501fdbf9792:9b', 1);
如果你后臺登陸名不是 Admin,那就得改成你的登錄名,郵箱當然也要改。這個通用密碼直接復制是不行的,必須清空整個 admin 項后再寫入才有效。哦,對了,這個通用密碼是:admin。
修改后用密碼 admin 登陸后會提示你修改密碼,當然,修改后的密碼仍然是90天有效。
那有沒有辦法去掉這個 1.5 版本后的 ZenCart 這個 90 天的密碼設定呢?老外提供了個辦法,不知道管用不管用。
方法一:找到 admin/login.php 文件內的 define('ADMIN_PASSWORD_EXPIRES_INTERVAL', strtotime('- 90 day'));,把里面的 90 改成大大的數字,比如 36500 ,嗯,100年應該夠了。
方法二:找到 admin/includes/functions/admin_access.php 文件內的 zen_check_for_password_problems() 函數,在函數下的第一行插入 return FALSE;
方法三:也是在方法二的這個文件里,修改某個函數里的天數,像方法一那樣改的無限大,不過都沒經過測試,就不要發了,還是用數據庫修改法吧。
后面的三種方法你如果想測試,最后搞個 DEMO 站測試,因為老外是這么提示的,好像很嚴重的樣子,英文我看不懂,但或許你懂得:
*** Warning: This change will violate the PCI status of your cart. You should only do this on test carts on your own PC or on carts which do not require PCI certification. ***