WordPress如何紧急修改管理员密码

  [复制链接]  147查看
易西 发表于 2026-5-21 11:17:10 | 显示全部楼层 |阅读模式
WordPress如何紧急修改管理员密码

 楼主| 易西 发表于 2026-5-21 11:17:50 | 显示全部楼层
用户:MichaelH/孤儿插件需要采用/紧急情况 « WordPress Codex
https://codex.wordpress.org/User ... _Adoption/Emergency
http://example.com/emergency.php

参考

  1. <?php
  2. /*
  3.         This program is free software; you can redistribute it and/or modify
  4.             it under the terms of the GNU General Public License as published by
  5.             the Free Software Foundation; either version 2 of the License, or
  6.             (at your option) any later version.

  7.         This program is distributed in the hope that it will be useful,
  8.             but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.             MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.             GNU General Public License for more details.

  11.         You should have received a copy of the GNU General Public License
  12.             along with this program; if not, write to the Free Software
  13.             Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  14. */

  15. require './wp-blog-header.php';

  16. function meh() {
  17.         global $wpdb;

  18.         if ( isset( $_POST['update'] ) ) {
  19.                 $user_login = ( empty( $_POST['e-name'] ) ? '' : sanitize_user( $_POST['e-name'] ) );
  20.                 $user_pass  = ( empty( $_POST[ 'e-pass' ] ) ? '' : $_POST['e-pass'] );
  21.                 $answer = ( empty( $user_login ) ? '<div id="message" class="updated fade"><p><strong>The user name field is empty.</strong></p></div>' : '' );
  22.                 $answer .= ( empty( $user_pass ) ? '<div id="message" class="updated fade"><p><strong>The password field is empty.</strong></p></div>' : '' );
  23.                 if ( $user_login != $wpdb->get_var( "SELECT user_login FROM $wpdb->users WHERE ID = '1' LIMIT 1" ) ) {
  24.                         $answer .="<div id='message' class='updated fade'><p><strong>That is not the correct administrator username.</strong></p></div>";
  25.                 }
  26.                 if ( empty( $answer ) ) {
  27.                         $wpdb->query( "UPDATE $wpdb->users SET user_pass = MD5('$user_pass'), user_activation_key = '' WHERE user_login = '$user_login'" );
  28.                         $plaintext_pass = $user_pass;
  29.                         $message = __( 'Someone, hopefully you, has reset the Administrator password for your WordPress blog. Details follow:' ). "\r\n";
  30.                         $message  .= sprintf( __( 'Username: %s' ), $user_login ) . "\r\n";
  31.                         $message .= sprintf( __( 'Password: %s' ), $plaintext_pass ) . "\r\n";
  32.                         @wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Your WordPress administrator password has been changed!' ), get_option( 'blogname' ) ), $message );
  33.                         $answer="<div id='message' class='updated fade'><p><strong>Your password has been successfully changed</strong></p><p><strong>An e-mail with this information has been dispatched to the WordPress blog administrator</strong></p><p><strong>You should now delete this file off your server. DO NOT LEAVE IT UP FOR SOMEONE ELSE TO FIND!</strong></p></div>";
  34.                 }
  35.         }

  36.         return empty( $answer ) ? false : $answer;
  37. }

  38. $answer = meh();
  39. ?>
  40. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  41. <html xmlns="http://www.w3.org/1999/xhtml">
  42. <head>
  43.         <title>WordPress Emergency PassWord Reset</title>
  44.         <meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
  45.         <link rel="stylesheet" href="<?php bloginfo( 'wpurl' ); ?>/wp-admin/wp-admin.css?version=<?php bloginfo( 'version' ); ?>" type="text/css" />
  46. </head>
  47. <body>
  48.         <div class="wrap">
  49.                 <form method="post" action="">
  50.                         <h2>WordPress Emergency PassWord Reset</h2>
  51.                         <p><strong>Your use of this script is at your sole risk. All code is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness. Further, I shall not be liable for any damages you may sustain by using this script, whether direct, indirect, special, incidental or consequential.</strong></p>
  52.                         <p>This script is intended to be used as <strong>a last resort</strong> by WordPress administrators that are unable to access the database.
  53.                                 Usage of this script requires that you know the Administrator's user name for the WordPress install. (For most installs, that is going to be "admin" without the quotes.)</p>
  54.                         <?php
  55.                         echo $answer;
  56.                         ?>
  57.                         <p class="submit"><input type="submit" name="update" value="Update Options" /></p>

  58.                         <fieldset class="options">
  59.                                 <legend>WordPress Administrator</legend>
  60.                                 <label><?php _e( 'Enter Username:' ) ?><br />
  61.                                         <input type="text" name="e-name" id="e-name" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-name'] ) ); ?>" size="20" tabindex="10" /></label>
  62.                                 </fieldset>
  63.                                 <fieldset class="options">
  64.                                         <legend>Password</legend>
  65.                                         <label><?php _e( 'Enter New Password:' ) ?><br />
  66.                                         <input type="text" name="e-pass" id="e-pass" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-pass'] ) ); ?>" size="25" tabindex="20" /></label>
  67.                                 </fieldset>

  68.                                 <p class="submit"><input type="submit" name="update" value="Update Options" /></p>
  69.                         </form>
  70.                 </div>
  71.         </body>
  72. </html>
  73. <?php exit; ?>
复制代码
 楼主| 易西 发表于 2026-5-21 11:18:12 | 显示全部楼层
用户:MichaelH/孤儿插件需要采用/紧急情况
Emergency 是由 villageidiot 开发的一个插件,但现在已经无法使用。使用这个插件时一定要非常小心!

使用紧急密码重置脚本
如果上述其他方案无效,可以尝试紧急密码重置脚本。它不是插件。它是一个PHP脚本。

警告
需要你知道管理员的用户名。
它会更新管理员密码,并发送邮件到管理员的邮箱地址。
如果你没有收到邮件,密码依然会被更改。
使用时不需要登录。如果你能登录,就不需要脚本了。
把它放在你的WordPress安装根目录里。请不要将此上传到您的WordPress插件目录。
完成后出于安全考虑删除脚本。
使用说明
将下面的脚本保存为名为 emergency.php 的文件,链接到你的 WordPress 安装根目录(与包含 wp-config.php 的目录相同)。
在浏览器中打开 http://example.com/emergency.php
按照指示,输入管理员用户名(通常是管理员)和新密码,然后点击“更新选项”。会显示一条信息,说明密码更改。会向博客管理员发送一封包含更改密码信息的邮件。
完成后从服务器上删除emergency.php。不要把它留在服务器上,因为别人可能会用它来更改你的密码。

参考
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

邮箱|首页|小黑屋|吾侪 ( 蜀ICP备2020029307号-4 )

GMT+8, 2026-9-17 18:29 , Processed in 0.043566 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © , 吾侪网

快速回复 返回顶部 返回列表