2016-04-21更新:顺手改了endtime过期的问题 判断时间已到期会设置到期时间为2026-01-01。
使用微赞经常因为更改后台管理密码、升级微赞等等原因造成忘记后台管理密码,还有的用户因为使用记住密码而忘记了自己的密码而微赞又没有找回密码的功能加上密码算法使用的密钥有两部分造成修改密码要小费事点,于是自己写了一个修改密码的php文件,复制下面的代码保存为getroot.php放到微赞的根目录访问 http://你的域名/getroot.php 输入要改密码的用户名和新的密码就行 。
code如下:
<?php /*微秀修改密码工具1.0版 **使用后记得删除文件 **因为使用造成的安全问题 本人概不负责 **转载请注明保留版权信息、网址和作者 **BY:http://www.des8.com CN-P5 QQ:378779555 */ require './framework/bootstrap.inc.php'; $tpl1=<<<EOF <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>微秀改密码</title> <link href="./web/resource/css/bootstrap.min.css" rel="stylesheet"> <link href="./web/resource/css/font-awesome.min.css" rel="stylesheet"> <link href="./web/resource/css/common.css" rel="stylesheet"> <script src="./web/resource/js/lib/jquery-1.11.1.min.js"></script> <script src="./web/resource/js/app/util.js"></script> <script src="./web/resource/js/require.js"></script> <script src="./web/resource/js/app/config.js"></script> <!--[if lt IE 9]> <script src="./resource/js/html5shiv.min.js"></script> <script src="./resource/js/respond.min.js"></script> <![endif]--> <script type="text/javascript"> if(navigator.appName == 'Microsoft Internet Explorer'){ if(navigator.userAgent.indexOf("MSIE 5.0")>0 || navigator.userAgent.indexOf("MSIE 6.0")>0 || navigator.userAgent.indexOf("MSIE 7.0")>0) { alert('您使用的 IE 浏览器版本过低, 推荐使用 Chrome 浏览器或 IE8 及以上版本浏览器.'); } } </script> </head> <body> <style> @media screen and (max-width:767px){.login .panel.panel-default{width:90%; min-width:300px;}} @media screen and (min-width:768px){.login .panel.panel-default{width:70%;}} @media screen and (min-width:1200px){.login .panel.panel-default{width:50%;}} </style> <div> <div> <a href="./?refresh" ></a> </div> <div style="margin-bottom:5em;"> <div class="panel panel-default container"> <div> EOF; $tpl2=<<<EOF <form action="getroot.php" method="post" role="form" onsubmit="return formcheck();"> <label class="inline input-lg">请输入要修改的管理用户名</label> <div class="form-group input-group"> <div><i class="fa fa-user"></i></div> <input name="username" type="text" class="form-control input-lg" placeholder="请输入管理用户名"> </div> <label class="inline input-lg">请输入新密码</label> <div class="form-group input-group"> <div><i class="fa fa-unlock-alt"></i></div> <input name="password" type="password" class="form-control input-lg" placeholder="请输入新的登录密码"> </div> <div> <div> <input name="do" value="ck" type="hidden" /> <input type="submit" name="submit" value="修改密码" class="btn btn-primary btn-lg" /> </div> </div> </form> EOF; $tpl3=<<<EOF </div> </div> </div> <div class="center-block footer" role="footer"> <div> <a href="http://www.des8.com">黑白的自留地</a> </div> <div> powered by www.des8.com </div> </div> </div> <script> function formcheck() { if($('#remember:checked').length == 1) { cookie.set('remember-username', $(':text[name="username"]').val()); } else { cookie.del('remember-username'); } return true; } require(['jquery'],function($){ var h = document.documentElement.clientHeight; $(".login").css('min-height',h); }); </script> </body> </html> EOF; function user_single2($user_or_uid) { $user = $user_or_uid; if (empty($user)) { return false; } if (is_numeric($user)) { $user = array('uid' => $user); } if (!is_array($user)) { return false; } $where = ' WHERE 1 '; $params = array(); if(!empty($user['uid'])) { $where .= ' AND `uid`=:uid'; $params[':uid'] = intval($user['uid']); } if(!empty($user['username'])) { $where .= ' AND `username`=:username'; $params[':username'] = $user['username']; } if(!empty($user['email'])) { $where .= ' AND `email`=:email'; $params[':email'] = $user['email']; } if(!empty($user['status'])) { $where .= " AND `status`=:status"; $params[':status'] = intval($user['status']); } if (empty($params)) { return false; } $sql = 'SELECT * FROM ' . tablename('users') . " $where LIMIT 1"; $record = pdo_fetch($sql, $params); if(empty($record)) { return false; } if(!empty($user['password'])) { $password = user_hash($user['password'], $record['salt']); if($password != $record['password']) { return false; } } return $record; } function user_update2($user) { if(empty($user['uid']) || !is_array($user)) { return false; } $record = array(); if(!empty($user['uid'])) { $record['uid'] = intval($user['uid']); } if(!empty($user['username'])) { $record['username'] = $user['username']; } if(!empty($user['salt'])) { $record['salt'] = $user['salt']; } if(!empty($user['password'])) { $record['password'] = user_hash2($user['password'], $user['salt']); } if(!empty($user['lastvisit'])) { $record['lastvisit'] = (strlen($user['lastvisit']) == 10) ? $user['lastvisit'] : strtotime($user['lastvisit']); } if(!empty($user['lastip'])) { $record['lastip'] = $user['lastip']; } if(isset($user['joinip'])) { $record['joinip'] = $user['joinip']; } if(isset($user['remark'])) { $record['remark'] = $user['remark']; } $time = time(); if($user['endtime'] <= $time) { $record['endtime'] = '1767200461'; } if($user['starttime'] == 0) { $record['starttime'] = $time; } if(isset($user['status'])) { $status = intval($user['status']); if (!in_array($status, array(1,2))) { $status = 2; } $record['status'] = $status; } if (isset($user['groupid'])) { $record['groupid'] = $user['groupid']; } if(empty($record)) { return false; } return pdo_update('users', $record, array('uid' => intval($user['uid']))); } function user_hash2($passwordinput, $salt) { global $_W; $passwordinput = "{$passwordinput}-{$salt}-{$_W['config']['setting']['authkey']}"; return sha1($passwordinput); } if( $_GPC['submit']=='修改密码'){ $user=array('username'=>$_GPC['username']); $user=user_single2($user); $user['salt'] = random(8); $user['password'] = $_GPC['password']; $user2=user_update2($user); if($user2==1){ $message = '<div class="alert alert-success">恭喜您!密码修改成功,您现在可以:<a style="margin-left: 10px;" class="btn btn-success" href="./web/index.php?c=user&a=login&">登陆</a><a style="margin-left: 10px;" class="btn btn-success" href="./web/index.php">访问网站首页</a><br /></div>'; }else{ $message = '<div class="alert alert-danger">密码修改失败!请联系维护人员:QQ 378779555</div>'; } echo $tpl1.$message.$tpl3; }else{ echo $tpl1.$tpl2.$tpl3; } ?>
转载请注明:黑白的自留地 » 微赞忘记管理密码的解决方法