WordPress密码忘了_管理员密码找回的三种方法

WordPress安装完网站后,时间久了难免会碰到密码忘记的情况。管理员账号没有办法通过忘记密码找回功能,所以只能使用另外的方式,本文就介绍三种简单找回WordPress管理员密码的办法。

使用重置脚本找回

Wp blog 318

如果你可以上传文件到服务器,那么可以使用下面的方法来用脚本重置管理员密码。具体步骤如下:

1、使用宝塔面板或者服务器后台文件管理器进入网站根目录。

2、创建一个czjb.php的文件,内容如下:(不会创建也可以直接下载下面的脚本解压后上传到服务器网站根目录)

PHP
<?php
/**
 * WordPress管理员账户恢复工具
 * 功能:
 *   1. 列出所有管理员账户(用户名和邮箱)
 *   2. 重置管理员密码
 * 安全机制:
 *   - 必须通过密钥访问
 *   - 操作后自动删除脚本
 */

// ==================== 配置区域 ====================
define('ACCESS_KEY', 'blog.naibabiji.com'); 
// =================================================

// 安全验证
if (!isset($_GET['key']) || $_GET['key'] !== ACCESS_KEY) {
    die('<div style="font-family: Arial, sans-serif; padding: 20px; background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; max-width: 600px; margin: 50px auto; text-align: center;">
        <h2>访问被拒绝</h2>
        <p>未提供有效密钥或密钥不正确</p>
        <p style="font-size: 0.9em; margin-top: 20px;">请使用正确的密钥访问此工具</p>
    </div>');
}

// 加载WordPress环境
if (!file_exists('wp-load.php')) {
    die('<div style="font-family: Arial, sans-serif; padding: 20px; background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; max-width: 600px; margin: 50px auto; text-align: center;">
        <h2>错误:找不到WordPress</h2>
        <p>请将此文件放在WordPress安装的根目录下</p>
    </div>');
}

require_once('wp-load.php');

// 获取所有管理员账户
function get_admin_users() {
    $admin_users = get_users(array(
        'role__in' => array('administrator'),
        'fields' => array('user_login', 'user_email')
    ));
    
    return $admin_users;
}

// 重置管理员密码
function reset_admin_password($username, $new_password) {
    $user = get_user_by('login', $username);
    
    if (!$user) {
        return array('success' => false, 'message' => "找不到用户: {$username}");
    }
    
    wp_set_password($new_password, $user->ID);
    return array('success' => true, 'message' => "管理员 '{$username}' 密码已重置为: {$new_password}");
}

// 处理表单提交
$action_result = null;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['action']) && $_POST['action'] == 'list_admins') {
        $admin_users = get_admin_users();
    } 
    elseif (isset($_POST['action']) && $_POST['action'] == 'reset_password') {
        $username = sanitize_text_field($_POST['username']);
        $new_password = $_POST['password'];
        $action_result = reset_admin_password($username, $new_password);
        
        // 重置成功后自动删除脚本
        if ($action_result['success']) {
            register_shutdown_function(function() {
                if (file_exists(__FILE__)) {
                    unlink(__FILE__);
                }
            });
        }
    }
}

$admin_users = get_admin_users();
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WordPress管理员账户恢复工具</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            line-height: 1.6;
            color: #333;
            background-color: #f5f7fa;
            padding: 20px;
        }
        
        .container {
            max-width: 800px;
            margin: 0 auto;
            background: white;
            border-radius: 10px;
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
            overflow: hidden;
        }
        
        header {
            background: #2c3e50;
            color: white;
            padding: 25px 30px;
            text-align: center;
        }
        
        h1 {
            font-size: 28px;
            margin-bottom: 10px;
        }
        
        .description {
            font-size: 16px;
            opacity: 0.9;
            max-width: 600px;
            margin: 0 auto;
        }
        
        .content {
            padding: 30px;
        }
        
        .section {
            margin-bottom: 30px;
            padding: 25px;
            background: #f9f9f9;
            border-radius: 8px;
            border-left: 4px solid #3498db;
        }
        
        .section-title {
            font-size: 22px;
            color: #2c3e50;
            margin-bottom: 20px;
            display: flex;
            align-items: center;
        }
        
        .section-title i {
            margin-right: 10px;
            font-size: 24px;
        }
        
        .admin-list {
            width: 100%;
            border-collapse: collapse;
            margin-top: 15px;
        }
        
        .admin-list th, .admin-list td {
            padding: 12px 15px;
            text-align: left;
            border-bottom: 1px solid #eee;
        }
        
        .admin-list th {
            background-color: #f1f5f9;
            font-weight: 600;
        }
        
        .admin-list tr:hover {
            background-color: #f8f9fa;
        }
        
        .form-group {
            margin-bottom: 20px;
        }
        
        label {
            display: block;
            margin-bottom: 8px;
            font-weight: 600;
            color: #2c3e50;
        }
        
        input[type="text"], input[type="password"], select {
            width: 100%;
            padding: 12px 15px;
            border: 1px solid #ddd;
            border-radius: 4px;
            font-size: 16px;
            transition: border-color 0.3s;
        }
        
        input:focus, select:focus {
            border-color: #3498db;
            outline: none;
            box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.2);
        }
        
        button {
            background: #3498db;
            color: white;
            border: none;
            padding: 12px 25px;
            font-size: 16px;
            border-radius: 4px;
            cursor: pointer;
            transition: background 0.3s;
            font-weight: 600;
        }
        
        button:hover {
            background: #2980b9;
        }
        
        .btn-danger {
            background: #e74c3c;
        }
        
        .btn-danger:hover {
            background: #c0392b;
        }
        
        .result {
            padding: 15px;
            border-radius: 4px;
            margin-top: 20px;
        }
        
        .success {
            background: #d4edda;
            color: #155724;
            border: 1px solid #c3e6cb;
        }
        
        .error {
            background: #f8d7da;
            color: #721c24;
            border: 1px solid #f5c6cb;
        }
        
        .warning {
            background: #fff3cd;
            color: #856404;
            border: 1px solid #ffeeba;
            padding: 20px;
            border-radius: 8px;
            margin-bottom: 30px;
        }
        
        .warning h3 {
            margin-bottom: 10px;
            color: #856404;
        }
        
        .footer {
            text-align: center;
            padding: 20px;
            background: #f1f5f9;
            color: #666;
            font-size: 14px;
        }
        
        @media (max-width: 600px) {
            .content {
                padding: 20px 15px;
            }
            
            .section {
                padding: 20px 15px;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>WordPress管理员账户恢复工具</h1>
            <p class="description">安全地恢复对您WordPress网站的管理员访问权限</p>
        </header>
        
        <div class="content">
            <div class="warning">
                <h3>安全警告</h3>
                <p>此工具仅限紧急情况下使用。操作完成后脚本将自动删除。</p>
                <p>请确保在完成操作后立即删除此文件。</p>
            </div>
            
            <!-- 管理员账户列表 -->
            <div class="section">
                <h2 class="section-title">管理员账户列表</h2>
                <p>以下是您网站的所有管理员账户:</p>
                
                <table class="admin-list">
                    <thead>
                        <tr>
                            <th>用户名</th>
                            <th>邮箱</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php if (!empty($admin_users)): ?>
                            <?php foreach ($admin_users as $admin): ?>
                                <tr>
                                    <td><?php echo esc_html($admin->user_login); ?></td>
                                    <td><?php echo esc_html($admin->user_email); ?></td>
                                </tr>
                            <?php endforeach; ?>
                        <?php else: ?>
                            <tr>
                                <td colspan="2" style="text-align: center;">未找到管理员账户</td>
                            </tr>
                        <?php endif; ?>
                    </tbody>
                </table>
            </div>
            
            <!-- 密码重置表单 -->
            <div class="section">
                <h2 class="section-title">重置管理员密码</h2>
                <p>请选择管理员账户并设置新密码:</p>
                
                <?php if ($action_result): ?>
                    <div class="result <?php echo $action_result['success'] ? 'success' : 'error'; ?>">
                        <?php echo $action_result['message']; ?>
                        <?php if ($action_result['success']): ?>
                            <p>请立即登录并更改密码!</p>
                        <?php endif; ?>
                    </div>
                <?php endif; ?>
                
                <form method="POST">
                    <input type="hidden" name="action" value="reset_password">
                    
                    <div class="form-group">
                        <label for="username">选择管理员账户:</label>
                        <select id="username" name="username" required>
                            <option value="">-- 请选择账户 --</option>
                            <?php foreach ($admin_users as $admin): ?>
                                <option value="<?php echo esc_attr($admin->user_login); ?>">
                                    <?php echo esc_html($admin->user_login); ?> (<?php echo esc_html($admin->user_email); ?>)
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                    
                    <div class="form-group">
                        <label for="password">设置新密码:</label>
                        <input type="text" id="password" name="password" required 
                               placeholder="输入强密码(字母+数字+符号)">
                    </div>
                    
                    <button type="submit">重置密码</button>
                </form>
            </div>
        </div>
        
        <div class="footer">
            <p>此工具将在密码重置成功后自动删除 | 安全密钥保护</p>
        </div>
    </div>
</body>
</html>

3、通过你域名+czjb.php?key=blog.naibaibji.com访问重置脚本。

4、根据提示修改用户名密码,重置成功后脚本会自动删除czjb.php文件确保安全。

5、使用修改的密码登录后台,管理员密码找回完毕。

FTP修改functions.php找回

如果你记得你网站的FTP信息,那么你可以使用FTP软件来修改主题文件夹里面的functions.php文件实现密码修改。

通过functions.php文件修改密码的具体步骤如下:

  1. 使用FTP软件登录到服务器。
  2. 进入你网站主题文件夹里面。*
  3. 下载functions.php文件用文本编辑器打开。*
  4. <?php后面添加上wp_set_password( 'password', 1 );保存。*
  5. 上传修改好的functions.php文件。
  6. 访问网站,密码为上面添加的代码里面的password
  7. 删除functions.php文件里面添加的代码。

奶爸提示:

主题文件夹位置在 /wp-content/themes/ 文件夹下面的文件夹,不知道是哪个主题,可以通过网站源代码查看。

Windows自带的记事本打开可能会乱码,推荐使用Notepad++等专业文本编辑软件打开。

password是你要修改的密码,1是你管理员帐号的ID,如果你网站有多个管理员用户,那么你需要去数据库里面查看对应的ID值。

数据库直接修改密码

如果你记得数据库的密码,那么直接通过phpmyadmin登录到数据库里面修改就可以了。具体方法步骤如下:

  1. 登录phpmyadmin(或者其他数据库管理软件)
  2. 进入你网站数据库的wp_users表。
  3. 找到你需要修改的帐号那一行内容。
  4. 双击user_pass那一行的值,把内容替换为06a5ac9504e3a3c83574cf7a6479be2d
  5. 再次登录网站,密码修改为了hao123
phpmyadmin数据库

查找管理员ID和用户名

如果你访问数据库后不知道你管理员ID和用户名是多少,那么可以在数据库的wp_usermeta 表中找
meta_key值为wp_user_levelmeta_value值是10 对应的user_id 是哪个数字,这个数字就是管理员的ID。

看有几个(多个管理员)或者甚至没有(以被删除管理员)。

忘记数据库和FTP帐号密码?

  • 如果你忘记了数据库密码,用ftp访问你网站根目录,打开wp-config.php,里面就有你数据库信息。
  • 如果你忘了FTP密码,还可以通过SSH访问服务器查看这个文件。
  • 如果你忘了服务器密码,可以在服务器管理面板重置密码。
  • 如果你忘了服务器管理界面的密码,你可以在购买服务器的网站上重置密码。
  • 如果你忘了购买服务器的网址和密码,你可以考虑下放弃做网站了。
4.2/5 - (5 votes)

需要专业的技术解决方案?

我们的专业团队可以帮助您实现技术目标,提供从设计到开发的全方位服务。

咨询专业服务
🔒

评论已关闭

本文的评论功能已关闭,如有问题欢迎通过其他方式联系我们。

×
二维码

扫码关注