dede后台密码忘了怎么找回?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 DEDE建站 正文

使用“找回密码”功能(最推荐,最安全)

这是 DedeCMS 自带的功能,应该首先尝试,前提是你的服务器环境支持 PHP 邮件发送

dede后台密码忘了
(图片来源网络,侵删)
  1. 打开登录页面:在你的浏览器中访问 DedeCMS 后台登录地址,通常是 你的域名/dede/login.php
  2. 找到“找回密码”链接:在登录框的下方,找到一个写着“忘记密码?”或“取回密码”的链接,点击它。
  3. 输入用户名或邮箱:在跳转到的页面中,输入你的管理员用户名或者你在后台绑定的电子邮箱地址。
  4. 接收邮件并重置:如果你的邮件服务器配置正确,系统会给你发送一封包含重置密码链接的邮件,点击邮件中的链接,按照提示设置一个新密码即可。

如果此方法失败,原因通常是

  • 你的网站没有配置好邮件功能(SMTP)。
  • 你当初注册管理员时没有绑定有效的邮箱。

通过数据库直接修改密码(最常用,最可靠)

如果方法一失败,或者你没有配置邮件,那么直接修改数据库是最直接有效的方法。

操作步骤:

  1. 登录你的网站数据库

    dede后台密码忘了
    (图片来源网络,侵删)
    • 通过你的虚拟主机控制面板(如 cPanel、Plesk)进入数据库管理工具(通常是 phpMyAdmin)。
    • 找到你的 DedeCMS 网站所使用的数据库。
  2. 找到用户数据表

    • 在数据库中,找到以 dede_ 开头的表(如果你的安装前缀不是 dede_,请替换成你自己的前缀)。
    • 找到名为 dede_admin 的表,这个表存储了所有管理员的信息。
  3. 找到管理员记录并修改密码

    • 点击 dede_admin 表进行浏览。
    • 你会看到 uid, uname, pwd 等字段,找到你的管理员用户名对应的记录。
    • 重点:DedeCMS 的密码是经过 MD5 加密后存储的,我们不能直接明文修改,需要生成一个 MD5 值。
    • 假设你想把新密码设置为 123456
    • 使用一个在线 MD5 加密工具(在搜索引擎搜索“MD5加密”即可找到很多),将 123456 进行加密,得到的结果是 e10adc3949ba59abbe56e057f20f883e
    • 回到 phpMyAdmin,点击该记录的“编辑”按钮。
    • pwd 字段的值修改为上面生成的 MD5 密码 e10adc3949ba59abbe56e057f20f883e
    • 点击“执行”或“Go”按钮保存修改。
  4. 登录后台

    • 现在你可以使用用户名 你的管理员用户名 和新密码 123456 登录 DedeCMS 后台了。

通过覆盖一个新文件重置密码(无需原密码)

这是一种“应急”方法,当你完全无法访问数据库时可以使用,它会创建一个临时的、拥有最高权限的管理员账户。

dede后台密码忘了
(图片来源网络,侵删)

操作步骤:

  1. 创建一个 PHP 文件

    • 在你的电脑上新建一个文本文档,将其重命名为 reset_pwd.php(注意后缀是 .php)。
    • 将下面的代码完整地复制并粘贴到这个文件中:
    <?php
    // 需要填写的信息
    $cfg_dbhost = 'localhost'; // 数据库主机,通常是 localhost
    $cfg_dbname = '你的数据库名'; // 你的数据库名
    $cfg_dbuser = '你的数据库用户名'; // 你的数据库用户名
    $cfg_dbpwd = '你的数据库密码'; // 你的数据库密码
    $cfg_dbprefix = 'dede_'; // 数据库表前缀,如果不是 dede_ 请修改
    $new_admin_name = 'newadmin'; // 你想创建的新管理员用户名
    $new_admin_pwd = 'newpassword123'; // 你想创建的新管理员密码(明文即可,脚本会自动加密)
    // --- 以下代码一般无需修改 ---
    @set_time_limit(0);
    echo "<form method='post'>";
    echo "数据库主机: <input name='dbhost' value='{$cfg_dbhost}' size='20'><br />";
    echo "数据库名: <input name='dbname' value='{$cfg_dbname}' size='20'><br />";
    echo "数据库用户名: <input name='dbuser' value='{$cfg_dbuser}' size='20'><br />";
    echo "数据库密码: <input name='dbpwd' value='{$cfg_dbpwd}' size='20' type='password'><br />";
    echo "表前缀: <input name='dbprefix' value='{$cfg_dbprefix}' size='10'><br />";
    echo "新用户名: <input name='new_admin_name' value='{$new_admin_name}' size='20'><br />";
    echo "新密码: <input name='new_admin_pwd' value='{$new_admin_pwd}' size='20'><br />";
    echo "<input type='submit' value='执行重置'>";
    echo "</form>";
    if (isset($_POST['dbhost'])) {
        $cfg_dbhost = $_POST['dbhost'];
        $cfg_dbname = $_POST['dbname'];
        $cfg_dbuser = $_POST['dbuser'];
        $cfg_dbpwd = $_POST['dbpwd'];
        $cfg_dbprefix = $_POST['dbprefix'];
        $new_admin_name = $_POST['new_admin_name'];
        $new_admin_pwd = $_POST['new_admin_pwd'];
        $link = mysql_connect($cfg_dbhost, $cfg_dbuser, $cfg_dbpwd);
        if (!$link) {
            die('无法连接数据库: ' . mysql_error());
        }
        mysql_select_db($cfg_dbname, $link);
        mysql_query("SET NAMES 'utf8'", $link);
        // 检查用户名是否已存在
        $row = mysql_fetch_array(mysql_query("SELECT * FROM `{$cfg_dbprefix}admin` WHERE `userid` = '{$new_admin_name}' LIMIT 1"));
        if ($row) {
            // 如果存在,则更新密码
            $pwd_md5 = md5($new_admin_pwd);
            $sql = "UPDATE `{$cfg_dbprefix}admin` SET `pwd` = '{$pwd_md5}' WHERE `userid` = '{$new_admin_name}'";
            if (mysql_query($sql)) {
                echo "<font color='red'>成功!用户 [{$new_admin_name}] 的密码已重置为 [{$new_admin_pwd}]。</font>";
            } else {
                echo "更新失败: " . mysql_error();
            }
        } else {
            // 如果不存在,则插入新用户
            $pwd_md5 = md5($new_admin_pwd);
            $sql = "INSERT INTO `{$cfg_dbprefix}admin` (`userid`, `pwd`, `uname`, `tname`, `typeid`, `spacesta`, `rank`, `matt`) VALUES ('{$new_admin_name}', '{$pwd_md5}', '{$new_admin_name}', '', 0, 0, 10, 0)";
            if (mysql_query($sql)) {
                echo "<font color='red'>成功!已创建新管理员账户,用户名 [{$new_admin_name}],密码 [{$new_admin_pwd}]。</font>";
            } else {
                echo "插入失败: " . mysql_error();
            }
        }
        mysql_close($link);
    }
    ?>
  2. 上传并运行文件

    • 使用 FTP 或文件管理器,将你刚刚创建的 reset_pwd.php 文件上传到你的 DedeCMS 网站的根目录(即与 index.php 同级的目录)。
    • 在浏览器中访问这个文件,http://你的域名/reset_pwd.php
  3. 填写信息并执行

    • 页面会显示一个表单,自动填充了一些默认值。请务必修改“数据库名”、“数据库用户名”和“数据库密码”为你自己的信息,其他项可以根据你的实际情况修改。
    • 输入你想要的新用户名和新密码。
    • 点击“执行重置”按钮。
  4. 完成并清理

    • 如果成功,页面会提示你重置成功。
    • 最重要的一步:立即通过 FTP 删除你上传的 reset_pwd.php 文件!这是一个安全隐患,留在服务器上很危险。
  5. 登录后台

    现在你可以用你设置的新用户名和新密码登录后台了。


总结与建议

方法 优点 缺点 适用场景
找回密码 最安全,官方推荐 依赖邮件服务器配置 邮件功能正常,且绑定了有效邮箱
改数据库 最可靠,直接高效 需要一定的数据库操作知识 邮件功能失效,或忘记绑定的邮箱
覆盖文件 无需原密码,操作直观 需要上传文件,有安全隐患(用后必删) 完全无法访问数据库,且方法一、二都失败

对于大多数用户来说,方法一是首选,如果不行,方法二是次选,也是最稳妥的。方法三作为最后的应急手段。

希望这些方法能帮你成功解决问题!

-- 展开阅读全文 --
头像
dede导航样式代码如何自定义修改?
« 上一篇 04-20
火车头织梦发布模块如何实现?
下一篇 » 04-21
取消
微信二维码
支付宝二维码

目录[+]