dede重置密码文件夹在哪?

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

这是一个非常经典且常用的方法,当你忘记后台密码,又无法通过邮箱重置时,这个方法就派上用场了。

dede重置密码文件夹
(图片来源网络,侵删)

核心原理

DedeCMS 的用户密码是经过 md5 加密后存储在数据库 #@__admin 表中的,我们可以通过一个临时的 PHP 脚本,在服务器上直接执行一段 SQL 语句,来修改这个密码值。

这个方法的关键在于,你需要在你的网站服务器上拥有文件管理权限,比如通过 cPanel、宝塔面板、FTP 或 SSH 连接到服务器。


准备工作

  1. 确定你的 DedeCMS 版本:不同版本的密码加密方式可能略有不同,但绝大多数都使用 md5,这个方法适用于 DedeCMS 5.7 及之前的绝大多数版本。
  2. 获取服务器访问权限:你需要知道如何通过 FTP、SSH 或网站控制面板(如宝塔面板)登录到你的网站服务器,并修改文件。
  3. 准备新的密码:想好你要设置的新密码是什么。
  4. 了解你的数据库信息:通常在 /data/common.inc.php 文件中可以找到你的数据库用户名、数据库名和密码。

详细操作步骤

第一步:创建一个密码重置脚本

  1. 在你的电脑上,新建一个文本文档。
  2. 将下面的代码复制并粘贴到这个文本文档中。
<?php
// +----------------------------------------------------------------------
// | DedeCMS Password Reset Tool
// +----------------------------------------------------------------------
// 请在这里填入你的新密码
$new_password = 'new_password_123';
// 数据库连接信息 (通常在 /data/common.inc.php 文件中可以找到)
$db_host = 'localhost'; // 数据库主机,通常是 localhost
$db_user = 'your_db_user'; // 你的数据库用户名
$db_pass = 'your_db_password'; // 你的数据库密码
$db_name = 'your_db_name'; // 你的数据库名
$db_prefix = 'dede_'; // 你的数据库表前缀,默认是 dede_
// 连接数据库
$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
    die("数据库连接失败: " . mysqli_connect_error());
}
// 设置字符集
mysqli_set_charset($conn, "utf8");
// 对新密码进行 MD5 加密
$encrypted_password = md5($new_password);
// 准备 SQL 更新语句
// 注意:如果你的管理员用户名不是 'admin',请修改下面的 'admin'
$sql = "UPDATE `{$db_prefix}admin` SET `pwd` = '{$encrypted_password}' WHERE `userid` = 'admin'";
// 执行 SQL 语句
if (mysqli_query($conn, $sql)) {
    echo "密码重置成功!<br>";
    echo "你的新管理员用户名是: admin<br>";
    echo "你的新管理员密码是: " . htmlspecialchars($new_password) . "<br>";
    echo "请立即登录后台并修改一个更复杂的密码!";
} else {
    echo "密码重置失败: " . mysqli_error($conn);
}
// 关闭数据库连接
mysqli_close($conn);
?>
  1. 修改脚本中的关键信息

    • $new_password = 'new_password_123';:将 'new_password_123' 修改为你自己想设置的新密码
    • $db_user = 'your_db_user';:修改为你的数据库用户名
    • $db_pass = 'your_db_password';:修改为你的数据库密码
    • $db_name = 'your_db_name';:修改为你的数据库名
    • $db_prefix = 'dede_';:检查你的数据库表前缀,如果不是 dede_,请在这里修改,你可以在 /data/common.inc.php 文件中找到 Prenam 这个变量的值。
    • WHERE userid = 'admin':如果你的管理员账号不是 admin,请在这里修改成你的管理员用户名。
  2. 保存文件:将这个文件另存为 reset_password.php(文件名可以任意,但后缀必须是 .php)。

    dede重置密码文件夹
    (图片来源网络,侵删)

第二步:上传脚本到服务器

  1. 通过 FTP、SSH 或网站控制面板的文件管理器,登录到你的网站服务器。
  2. 将刚刚创建的 reset_password.php 文件上传到你的 DedeCMS 网站的根目录下,也就是和 index.phpinstall 文件夹在同一个级别的目录。

第三步:执行脚本重置密码

  1. 在浏览器中访问你刚刚上传的文件,输入你的网址,后面加上 /reset_password.php
    • http://www.yourdomain.com/reset_password.php
  2. 如果一切顺利,你会看到页面显示“密码重置成功!”以及你的新用户名和密码。

第四步:清理和验证

  1. 立即删除脚本:密码重置成功后,第一时间通过 FTP 或文件管理器将 reset_password.php 文件从服务器上删除,这是一个安全隐患,绝对不能留在服务器上。
  2. 登录后台:你可以访问你的 DedeCMS 后台登录页面(通常是 /dede/login.php),使用用户名 admin 和你刚刚设置的新密码进行登录。
  3. 修改密码:成功登录后,请立即进入“系统” -> “系统用户管理”,找到 admin 这个账户,点击“修改”,设置一个更复杂、更安全的密码。

重要注意事项和常见问题

  • 文件权限:确保你上传的 reset_password.php 文件具有可执行权限,如果遇到问题,可以尝试在服务器上将其权限设置为 755644
  • 数据库前缀:这是最容易出错的地方,如果前缀不对,SQL 语句会找不到表,导致重置失败,请务必检查 /data/common.inc.php 文件。
  • 管理员用户名:如果你自定义过管理员用户名,并且不是 admin,请务必在 SQL 语句中修改 WHERE userid = 'admin' 这一部分。
  • 如果修改后仍然无法登录
    • 检查 reset_password.php 文件中的数据库信息是否全部正确。
    • 检查 SQL 语句是否执行成功(访问脚本时会显示)。
    • 检查 #@__admin 表中是否存在 pwduserid 这两个字段。
    • 某些特殊版本的 DedeCMS 可能使用二次加密(如 md5(md5($password))),你可以尝试将 $encrypted_password = md5($new_password); 修改为 $encrypted_password = md5(md5($new_password)); 再试一次。
  • 安全第一:再次强调,用完就删!这个文件一旦被别人利用,就可以随意修改你的管理员密码,后果不堪设想。

这个方法非常可靠,只要你的服务器文件权限正常,基本都能成功解决问题。

dede重置密码文件夹
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
学习java语言还是c语言
« 上一篇 今天
织梦更新文章没反应,怎么回事?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]