今天又发现了一个 Sablog-x 2.0 的BUG哦!
文章最后提供了修改后的文件代码下载链接!直接解压缩覆盖即可!
其具体问题是:
- 管理员后台修改其他用户密码之后,导致其他用户无法登录(密码错的缘故)。
- 所有用户无法修改自己的密码
- 注册新用户时,系统不会记录新用户的email问题
- 新建用户,修改用户,编辑用户密码的密码过滤BUG
解决方法:
有些地方没有写出原来的代码内容,如果大家修改过源代码,请注意查看一下要改动的代码是否和我提供的代码相似,代码都是按顺序从上往下修改的。很多地方都是将password修改为newpassword,关于一个单词拼写错误我也改了一下,comfirmpassword改为confirmpassword。大家注意一下。后面是具体改动内容。
打开templatesadminuser.php
第118行
- <input class="formfield" type="password" name="password" size="50" value="" /><br />
改为
- <input class="formfield" type="password" name="newpassword" size="50" value="" /><br />
第125行
- <input class="formfield" type="password" name="comfirpassword" size="50" value="" /><br />
改为
- <input class="formfield" type="password" name="confirmpassword" size="50" value="" /><br />
打开adminuser.php
将51行,104行改为:
- $confirmpassword = trim($_POST["confirmpassword"]);
将74行,123行改为:
- if ($newpassword != $confirmpassword) {
将77行和126行这两行替换为:
- if (strpos($newpassword," ") !== false || strpos($newpassword," ") !== false || strpos($newpassword," ") !== false) {
将154行和155行替换为:
- $newpassword = $_POST["newpassword"];
- $confirmpassword = $_POST["confirmpassword"]; //大A居然写成了comfirmpassword
将168行~186行替换为:
- if ($newpassword) {
- $user = $DB->fetch_one_array("SELECT password FROM {$db_prefix}users WHERE userid="$sax_uid"");
- if (!$user) {
- redirect("出错,请尝试重新登陆再进行此操作");
- }
- if ($old_password != $user["password"]) {
- redirect("密码无效");
- }
- if(strlen($newpassword) < 8) {
- redirect("新密码长度不能小于8位");
- }
- if ($newpassword != $confirmpassword) {
- redirect("请确认输入的新密码一致");
- }
- if (strpos($newpassword," ") !== false || strpos($newpassword," ") !== false || strpos($newpassword," ") !== false) {
- redirect("密码包含不可接受字符");
- }
- $password_sql = ", password="".md5($newpassword).""";
- }
将191行替换为:
- if ($newpassword) {
打开cp.php
第161行,把原来的代码修改一下,增加上email和”$email”,如下:
- $DB->query("INSERT INTO {$db_prefix}users (username, password, logincount, loginip, logintime, email, url, regdateline, regip, groupid, lastip, lastvisit, lastactivity) VALUES ("$username", "$password", "1", "$onlineip", "$timestamp", "$email", "$url", "$timestamp", "$onlineip", "3", "$onlineip", "$timestamp", "$timestamp")");
站内搜索
3 Comments