dede后台左侧菜单不显示怎么办?

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

第一步:清除缓存(最常见的原因)

DedeCMS为了提高速度,会缓存很多数据,包括菜单信息,缓存文件损坏或过期就可能导致菜单不显示。

dede后台左侧不显示
(图片来源网络,侵删)
  1. 登录FTP或主机文件管理器,进入您的网站根目录。
  2. 找到并删除以下两个缓存文件夹:
    • /data/cache/
    • /data/tplcache/
  3. 重要:不要直接删除整个 /data 目录,只需删除里面的 cachetplcache 文件夹即可,如果删除不了,可能是权限问题,您需要在服务器控制面板中修改这两个文件夹的权限为 777,删除后再改回原权限(如 755)。
  4. 删除完成后,重新登录DedeCMS后台,看左侧菜单是否恢复。

第二步:检查管理员权限

如果清除缓存无效,可能是当前登录的管理员账户权限丢失或被篡改。

  1. 登录数据库:使用phpMyAdmin或其他数据库管理工具登录您的网站数据库。
  2. 找到数据表:找到 dede_admin(管理员表)和 dede_arctype(栏目表,有时权限问题也与此相关)。
  3. 检查管理员信息
    • dede_admin 表中,找到您当前登录的管理员账户记录。
    • 检查 usertype 字段是否为 管理员
    • 检查 rank 字段是否为 010(超级管理员通常为 10)。
    • 检查 mtype 字段是否为 管理员
  4. 检查权限字段
    • dede_admin 表中,检查 purviews 字段,对于超级管理员,这个字段通常是一个空字符串 或者包含特定权限的字符串,如果它被意外修改或清空,可能会导致权限问题,您可以尝试将其设置为空字符串。
    • dede_arctype 表中,检查 topid 字段,确保顶级栏目的 topid0,这关系到菜单的层级结构。

第三步:检查数据库表前缀

如果您在安装DedeCMS时修改了默认的数据表前缀(默认是 dede_),那么系统可能无法正确找到对应的表。

  1. 检查配置文件:打开网站根目录下的 /data/common.inc.php 文件。
  2. 查看前缀配置:找到 $cfg_dbprefix = '这里是你设置的前缀'; 这一行,确认您的前缀是什么。
  3. 核对数据库:登录phpMyAdmin,检查您数据库中的表名是否与 common.inc.php 中设置的前缀一致,如果配置文件中是 mycms_,那么数据库里就应该是 mycms_admin, mycms_arctype 等,如果不一致,需要修改配置文件以匹配数据库,或者反之。

第四步:检查核心文件是否损坏

有时,服务器上的文件传输错误或权限问题可能导致核心文件损坏。

  1. 比对文件:下载一个与您网站DedeCMS版本完全相同的、干净的原版程序包。
  2. 覆盖关键文件:用原版程序包中的以下文件,覆盖您网站服务器上对应的文件(覆盖前最好先备份原文件):
    • /dede/ 目录下的所有PHP文件(特别是 index.php, config.php, templets/index_body.htm 等)。
    • /include/ 目录下的核心文件,如 common.inc.php, login.php 等。
  3. 注意权限:确保覆盖后的文件权限设置正确(通常是 644),目录权限是 755

第五步:检查模板文件

后台首页的模板文件如果损坏,也会导致页面布局错乱,菜单不显示。

dede后台左侧不显示
(图片来源网络,侵删)
  1. 找到模板文件:后台首页的模板文件通常位于 /dede/templets/index_body.htm
  2. :用文本编辑器打开这个文件,检查其内容是否完整,特别是调用菜单的代码部分是否被意外删除或修改,可以与一个干净的原版程序包中的同名文件进行对比。

第六步:检查PHP版本和函数兼容性

如果您最近升级了PHP服务器版本,可能会遇到一些不兼容的函数,导致程序报错但页面只显示空白。

  1. 查看错误日志:检查服务器的错误日志(通常在 cPanel 的 "Error Log" 里,或者在 /var/log/apache2/error.log 等位置),可能会有具体的错误信息。
  2. 常见问题:高版本的PHP(如PHP 8.0+)可能会废弃一些旧函数。mysql_connect 等函数在PHP 7.0以后就被移除了,DedeCMS旧版本可能不兼容。
    • 解决方案:联系您的服务器提供商,将PHP版本降级到一个DedeCMS官方推荐的稳定版本(如 PHP 5.6, 7.0, 7.1)。

第七步:终极解决方案 - 重建管理员账户

如果以上方法都无效,可能是管理员账户数据严重损坏,最直接的办法就是创建一个新的超级管理员账户。

  1. 登录数据库

  2. 找到管理员表dede_admin (或您自定义前缀的管理员表)。

    dede后台左侧不显示
    (图片来源网络,侵删)
  3. 插入新管理员:执行以下SQL语句(请务必将 your_password 替换为您想设置的密码,your_username 替换为您想用的用户名)。

    INSERT INTO `dede_admin` (`id`, `usertype`, `typeid`, `rank`, `mtype`, `userid`, `pwd`, `uname`, `tname`, `email`, `sex`, `logintime`, `loginip`, `safequestion`, `safeanswer`, `dede_logintime`) VALUES
    (2, '管理员', 0, 10, '管理员', 'your_username', '新密码的MD5值', '新管理员姓名', '', 'your_email@example.com', '男', 0, '', 0, '', 0);
  4. 获取MD5密码:您可以使用在线MD5加密工具,将您设置的密码(123456)进行MD5加密,得到一串32位的字符串(e10adc3949ba59abbe56e057f20f883e),然后将这串字符串替换掉SQL语句中的 '新密码的MD5值'

  5. 登录:执行完SQL后,您就可以用新创建的用户名和密码登录后台了,登录成功后,您可以根据需要删除旧的、损坏的管理员账户。

总结排查顺序建议

  1. 先清缓存(成功率最高)。
  2. 再检查 数据库权限表前缀
  3. 然后考虑 覆盖核心文件
  4. 最后尝试 重建管理员账户

希望这些步骤能帮助您解决问题!

-- 展开阅读全文 --
头像
织梦模板修改链接的步骤是什么?
« 上一篇 今天
织梦文章自动分页标签如何设置?
下一篇 » 今天

相关文章

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

目录[+]