帝国CMS-管理员密码重置

admin 建站教程评论8791字数 6541阅读模式

1.首先新建一个resetuser.php文件
2.写入以下代码

  1. <?php
  2. define('EmpireCMSAdmin','1');
  3. $ecms_config=array();
  4. $do_loginauth='';
  5. require('../class/connect.php');
  6. require('../class/db_sql.php');
  7. require('../class/functions.php');
  8. $link=db_connect();
  9. $empire=new mysqlquery();
  10. //------- 插件参数设置开始 -----
  11. //进入重置页面密码
  12. $pagepassword='123456';
  13. //------- 插件参数设置结束 -----
  14. @header('Content-Type: text/html; charset=gb2312');
  15. //重置密码
  16. function user_ResetUser($add){
  17.     global $empire,$dbtbpre;
  18.     user_CheckGotoPagePass();
  19.     $userid=(int)$add['userid'];
  20.     $password=RepPostVar($add['password']);
  21.     if(!$userid||!$password||!$add['repassword'])
  22.     {
  23.         printerror2('请输入重置的新密码','');
  24.     }
  25.     if($password<>$add['repassword'])
  26.     {
  27.         printerror2('两次输入的密码不一致','');
  28.     }
  29.     if(strlen($password)<6)
  30.     {
  31.         printerror2('密码不能少于6位','');
  32.     }
  33.     if(function_exists('DoEmpireCMSAdminPassword'))
  34.     {
  35.         $salt=make_password(8);
  36.         $salt2=make_password(20);
  37.         $password=DoEmpireCMSAdminPassword($password,$salt,$salt2);
  38.         $a="password='$password',salt='$salt',salt2='$salt2'";
  39.     }
  40.     else
  41.     {
  42.         $salt=make_password(8);
  43.         $password=md5(md5($password).$salt);
  44.         $a="password='$password',salt='$salt'";
  45.     }
  46.     $sql=$empire->query("update {$dbtbpre}enewsuser set ".$a." where userid='$userid'");
  47.     if($add['noquestion']==1)
  48.     {
  49.         $addsql=$empire->query("update {$dbtbpre}enewsuseradd set equestion='0',eanswer='' where userid='$userid'");
  50.     }
  51.     echo"<script>self.location.href='resetuser.php?ecms=success';</script>";
  52.     exit();
  53. }
  54. //返回用户列表
  55. function user_ReturnUserlist(){
  56.     global $empire,$dbtbpre;
  57.     $users='';
  58.     $sql=$empire->query("select userid,username from {$dbtbpre}enewsuser");
  59.     while($r=$empire->fetch($sql))
  60.     {
  61.         $users.="<option value='".$r[userid]."'>".$r[username]."</option>";
  62.     }
  63.     return $users;
  64. }
  65. //登陆验证
  66. function user_GotoPagePassword($ckpassword){
  67.     global $pagepassword;
  68.     if($pagepassword<>$ckpassword)
  69.     {
  70.         printerror2('页面密码错误','');
  71.     }
  72.     @setcookie('ckecmspagepass',md5($ckpassword));
  73.     echo"<script>self.location.href='resetuser.php?ecms=resetpage';</script>";
  74.     exit();
  75. }
  76. //验证信息
  77. function user_CheckGotoPagePass(){
  78.     global $pagepassword;
  79.     if(md5($pagepassword)<>$_COOKIE['ckecmspagepass'])
  80.     {
  81.         printerror2('您还未验证权限','resetuser.php');
  82.     }
  83. }
  84. $ecms=$_POST['ecms'];
  85. if(empty($ecms))
  86. {
  87.     $ecms=$_GET['ecms'];
  88. }
  89. if($ecms=='GotoPagePassword')//登陆验证
  90. {
  91.     user_GotoPagePassword($_POST['ckpassword']);
  92. }
  93. elseif($ecms=='ResetUser')//重置密码
  94. {
  95.     user_ResetUser($_POST);
  96. }
  97. ?>
  98. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  99. <html>
  100. <head>
  101. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  102. <title>重置管理员密码</title>
  103. <style>
  104. a       { text-decoration: none; color: #002280 }
  105. a:hover { text-decoration: underline }
  106. body    { font-size: 10pt; }
  107. table   { font-size: 10pt; color: #000000 }
  108. </style>
  109. <script>
  110. function CheckUserInfo(obj){
  111.     if(obj.userid.value=='')
  112.     {
  113.         alert('请选择要重置的用户');
  114.         obj.userid.focus();
  115.         return false;
  116.     }
  117.     if(obj.password.value=='')
  118.     {
  119.         alert('请输入重置的新密码');
  120.         obj.password.focus();
  121.         return false;
  122.     }
  123.     if(obj.password.value!=obj.repassword.value)
  124.     {
  125.         alert('两次输入的密码不一致');
  126.         obj.password.focus();
  127.         return false;
  128.     }
  129.     if(obj.password.value.length<6)
  130.     {
  131.         alert('密码不能少于6位');
  132.         obj.password.focus();
  133.         return false;
  134.     }
  135.     return true;
  136. }
  137. </script>
  138. </head>
  139. <body>
  140. <br>
  141. <br>
  142. <br>
  143. <?php
  144. if($ecms=='success')
  145. {
  146.     user_CheckGotoPagePass();
  147. ?>
  148. <table width="600" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#4FB4DE">
  149.   <tr>
  150.     <td height="30"><div align="center"><strong><font color="#FFFFFF">已完成重置</font></strong></div></td>
  151.   </tr>
  152.   <tr>
  153.     <td height="120" bgcolor="#FFFFFF">
  154.       <div align="center"><font color="#FF0000"><strong>恭喜!密码重置完毕,现在您可以用新的密码登陆后台了。</strong><br>
  155.         <br>
  156.         <br>
  157.         </font>(友情提示:建议马上删除 /e/update/resetuser.php 文件,防止被重复使用。) </div></td>
  158.   </tr>
  159. </table>
  160. <?php
  161. }
  162. elseif($ecms=='resetpage')
  163. {
  164.     user_CheckGotoPagePass();
  165. ?>
  166. <form name="reseteform" method="post" action="resetuser.php" onsubmit="return CheckUserInfo(document.reseteform);">
  167.   <table width="500" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#4FB4DE">
  168.     <tr>
  169.       <td height="30" colspan="2"><strong><font color="#FFFFFF">重置管理员密码:</font></strong></td>
  170.     </tr>
  171.     <tr>
  172.       <td width="146" height="25" bgcolor="#FFFFFF">用户:</td>
  173.       <td width="339" bgcolor="#FFFFFF"><select name="userid" id="userid">
  174.         <?=user_ReturnUserlist()?>
  175.         </select></td>
  176.     </tr>
  177.     <tr>
  178.       <td height="25" bgcolor="#FFFFFF">新密码:</td>
  179.       <td bgcolor="#FFFFFF"><input name="password" type="password" id="password"></td>
  180.     </tr>
  181.     <tr>
  182.       <td height="25" bgcolor="#FFFFFF">重复新密码:</td>
  183.       <td bgcolor="#FFFFFF"><input name="repassword" type="password" id="repassword"></td>
  184.     </tr>
  185.     <tr>
  186.       <td height="25" bgcolor="#FFFFFF">安全问题设为空:</td>
  187.       <td bgcolor="#FFFFFF"><input name="noquestion" type="checkbox" id="noquestion" value="1" checked>
  188.         清空安全问题</td>
  189.     </tr>
  190.     <tr>
  191.       <td height="25" bgcolor="#FFFFFF">当前认证码为:</td>
  192.       <td bgcolor="#FFFFFF"><?=$do_loginauth?$do_loginauth:$ecms_config['esafe']['loginauth']?></td>
  193.     </tr>
  194.     <tr>
  195.       <td height="25" bgcolor="#FFFFFF">&nbsp;</td>
  196.       <td bgcolor="#FFFFFF"><input type="submit" name="Submit" value="马上重置登录信息">
  197.         <input name="ecms" type="hidden" id="ecms" value="ResetUser"></td>
  198.     </tr>
  199.     <tr>
  200.       <td height="25" colspan="2" bgcolor="#FFFFFF"><font color="#666666">说明:密码设置6位以上,且密码不能包含:$
  201.         &amp; * # &lt; &gt; ' &quot; / \ % ; 空格</font></td>
  202.     </tr>
  203.   </table>
  204. </form>
  205. <?php
  206. }
  207. else
  208. {
  209. ?>
  210. <form name="loginform" method="post" action="resetuser.php">
  211.   <table width="500" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#4FB4DE">
  212.     <tr>
  213.       <td height="30" colspan="2"><strong><font color="#FFFFFF">进入重置页面密码:</font></strong></td>
  214.     </tr>
  215.     <tr>
  216.       <td width="146" height="25" bgcolor="#FFFFFF">输入密码:</td>
  217.       <td width="339" bgcolor="#FFFFFF"><input name="ckpassword" type="password" id="password"></td>
  218.     </tr>
  219.     <tr>
  220.       <td height="25" bgcolor="#FFFFFF">&nbsp;</td>
  221.       <td bgcolor="#FFFFFF"><input type="submit" name="Submit2" value="进入重置登录页面">
  222.         <input name="ecms" type="hidden" id="ecms" value="GotoPagePassword"></td>
  223.     </tr>
  224.   </table>
  225. </form>
  226. <?php
  227. }
  228. ?>
  229. </body>
  230. </html>
  231. <?php
  232. db_close();
  233. $empire=null;
  234. ?>

然后放入到网站的/e/update/目录内
3.在浏览器中执行 /e/update/resetuser.php 文件

  1. 修改 /e/update/resetuser.php 文件里的访问密码:(防止被他人使用)
  2. 进入重置页面密码
  3. $pagepassword='123456';

依提示设置重置密码信息,重置密码后删除 /e/update/resetuser.php 文件
效果如图
帝国CMS-管理员密码重置

版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
admin
  • 本文由 发表于 2021年9月29日 17:22:26
  • 转载请务必保留本文链接:https://www.58pxe.com/7815.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: