SEO技术

SEO技术

Products

当前位置:首页 > SEO技术 >

织梦系统参数空白或提示未定义函数make_hash(),是哪里出了问题?🔍

96SEO 2025-09-04 11:37 4


一、问题现象描述

织梦系统后台出现参数空白或者报错:

织梦出现系统基本参数空白或显示Call to undefined function make_hash()

Fatal error: Call to

这类错误通常发生在进入“系统基本参数”页面时。用户打开后台后发现基本配置项全部为空,且页面直接报错,导致无法正常使用后台进行设置。

该问题多出现在升级版本或搬家后首次登录后台时是很多站长常见的疑难杂症之一。

二、导致该问题的核心原因解析

1. 缺少关键函数定义——make_hash

这个函数是织梦系统在新版中用于生成平安令牌的关键方法。它通常包含在“common.func.php”文件中。如果这个文件缺少了这段代码或者覆盖了原有代码,就会引发该错误。

2. 系统文件不完整或被模板覆盖

许多第三方模板作者会带来自定义的“common.func.php”, 如果此文件版本过低或者缺少新加的函数,也会造成调用失败。

3. PHP环境 缺失或版本兼容性问题

make_hash内部依赖PHP某些加密 , 若服务器环境没有开启相关 ,也可能导致施行异常,从而间接影响功能。

4. 升级或搬家操作中遗漏必要步骤

部分用户升级织梦时 没有正确合并新版核心文件,或者将旧版模板和新版程序混用,也是常见原因之一。

三、 详细解决方案

1. 检查并补充缺失的make_hash和dede_random_bytes函数代码

操作步骤:

  • 找到网站根目录下/include/common.func.php
  • 打开文件,将以上两段函数代码粘贴到合适位置
  • 保存并上传服务器替换旧文件,然后刷新后台查看是否恢复正常。

2. 确认模板中的common.func.php是否为最新版本

注意: 有些第三方模板为了兼容老版本, 会自带旧版common.func.php,这会覆盖官方新增的函数。建议备份当前模板, 再替换为官方最新版本或者删除模板中的重复文件,让系统调用默认内核中的common.func.php。

3. 检查PHP环境及 模块支持情况

建议检查:

  • php -m | grep openssl
  • xdebug日志和错误日志是否有相关警告信息?

如果确认未启用openssl , 请联系主机商开启或自行修改php.ini配置启用该模块,以保证random字节生成可用性。

4. 修正sys_info.php中调用make_hash处错误处理

如果急需进入后台操作, 可先注释掉调用处避免程序终止,但这只是权宜之计,不推荐长期使用:

// 打开 /dede/sys_info.php 文件
// 找到第201行左右
// 将类似于以下代码前添加注释符号:

四、防止 出现此类问题的小技巧

1. 升级时务必保留核心include目录及其内容完整性

* 切勿只替换dede目录下某几个文件。 * 推荐全量备份现有程序和数据库,再做测试更新。 * 避免直接覆盖第三方模板内置库文件,尽量保持内核层一致性。

2. 选择稳定兼容PHP环境及主机配置

  • 当前dedecms对PHP7及以上版本支持较好, 但仍需注意安装必要 ,如openssl、mbstring等 。
  • 确保开启session功能且权限正确 ,避免因权限不当导致session变量丢失 。
  • 定期检查服务器日志 ,及时发现潜在隐患 。

3 . 模板选择与维护要跟进官方更新趋势

很多时候 , 第三方模板未及时同步官方内核更新 ,极易引发兼容故障 。建议选用口碑良好 、经常更新维护的正规主题 。一边自己具备基础PHP知识 ,方便遇到类似情况快速定位修复 。



提交需求或反馈

Demand feedback