欢迎访问艾立兹站 Aliz- 专注建站教程与技术分享
您当前的位置:首页 > 建站教程 > 帝国 CMS 教程

帝国 CMS 发布文章空白白屏解决方法|提交页面一片空白排查全流程

时间:2026-07-20 20:55:19  来源:aliz.cn  作者:SKY  阅读:

帝国 CMS 发布文章空白白屏完整排查修复教程

现象说明

后台点击【增加信息】填写内容提交,页面纯白无任何文字、提示、跳转;无弹窗、无报错文字,数据库不新增数据,前端一片空白,是帝国 CMS 二开、修改模板后最常见故障。

一、开启 PHP 错误提示(第一步必做,定位根源)

空白页面 90% 是 PHP 致命错误被服务器隐藏,先打开错误日志看到真实报错。

方案 1:临时在提交页顶部开启(e/admin/AddInfo.php

文件最顶部<?php下方插入:
 

error_reporting(E_ALL);
ini_set('display_errors', 1);

保存后重新发布文章,页面会打印完整错误代码,根据报错精准修复。

方案 2:php.ini 全局开启(服务器操作)

display_errors = On
error_reporting = E_ALL

二、五大高频空白原因 + 对应修复

1. 列表 / 内容模板存在语法错误(最高发)

修改过列表模板、内容模板、list.var 代码,PHP 语法写错直接导致提交渲染空白。

排查方法:

  1. 后台【栏目】→ 修改栏目 → 切换内容模板 / 列表模板为官方默认模板
  2. 重新发布测试,正常则代表自定义模板代码出错

常见错误点:

  • <?= 短标签服务器关闭,改为 <?php echo 变量; ?>
  • 循环[/e:loop]缺失、括号不匹配、分号遗漏
  • sys_ResizeImg、自定义函数传参数量错误
  • 正则、SQL 语句引号未转义

2. 提交页 AddInfo.php 自定义二开代码报错

你之前加过缩略图自动提取、IP 封禁等自定义 PHP 代码,语法错误直接中断执行。

修复:

  1. 备份AddInfo.php
  2. 删掉自己新增的自定义代码,恢复官方原版测试
  3. 逐段重新添加自定义代码,定位出错片段

3. 数据表无写入权限 / 字段缺失

故障场景:

  1. 新建自定义模型、新增字段后未同步数据表
  2. MySQL 账号无INSERT写入权限
  3. 分表ecms_news_data_数字损坏、不存在

排查代码(后台数据库管理执行)

SHOW TABLES LIKE '{$dbtbpre}ecms_news_data_%';

无对应分表执行修复表语句,或重建模型附属数据表。

4. 缩略图函数 sys_ResizeImg 路径 / 权限报错(你近期改动重点)

你刚使用自动缩略图代码,是本次空白最高概率诱因:

  1. /e/data/resizepic/ 文件夹无 755 读写权限
  2. 传入图片路径为空、不存在,函数触发致命错误
  3. 服务器未开启 GD 图像处理库

临时屏蔽缩略图测试

模板内所有sys_ResizeImg()代码全部注释,发布正常即代表缩略图函数问题。
权限修复命令(Linux)

chmod -R 755 /网站目录/e/data/resizepic/
chown -R www:www /网站目录/e/data/resizepic/

5. 缓存、哈希参数 ecms_hashur 丢失

提交表单缺少$ecms_hashur['form']防跨站参数,提交后直接空白无响应。

标准表单完整示例(正确写法)

<form method="post" action="AddInfo.php<?=$ecms_hashur['whehref']?>">
    <input type="hidden" name="<?=$ecms_hashur['formname']?>" value="<?=$ecms_hashur['form']?>">
    <!-- 表单内容 -->
</form>

缺失哈希隐藏输入框会直接提交空白。

三、快速应急修复方案(一键恢复发布功能)

  1. 覆盖官方原版 e/admin/AddInfo.phpe/admin/EditInfo.php
  2. 栏目切换回系统默认模板,清空模板缓存:【系统 - 数据更新 - 清除缓存】
  3. /e/data/resizepic//e/data/全部目录 755 权限
  4. 关闭所有自定义缩略图、IP 拦截二开代码测试

    四、采集 / 自动提取正文图片代码导致空白专属修复

    你之前使用的自动抓取正文第一张图代码,容易出现 SQL / 数组报错,容错优化版代码(替换原有代码,避免空白):

    <?php
    $picUrl = !empty($bqr[titlepic]) ? $bqr[titlepic] : '';
    if(empty($picUrl)){
        // 增加判断防止空ID查询报错
        if(!empty($bqr['id']) && !empty($bqr['stb'])){
            $dataRow = $empire->fetch1("select newstext from {$dbtbpre}ecms_news_data_{$bqr[stb]} where id='$bqr[id]' limit 1");
            if(!empty($dataRow['newstext'])){
                preg_match('/<img.*?src="(.*?)"/is',$dataRow['newstext'],$match);
                $picUrl = !empty($match[1]) ? $match[1] : "/skin/nopic.jpg";
            }else{
                $picUrl = "/skin/nopic.jpg";
            }
        }else{
            $picUrl = "/skin/nopic.jpg";
        }
    }
    // 容错处理缩略图,函数报错不中断页面
    try{
        $thumb = sys_ResizeImg($picUrl,240,160,2,'');
    }catch(Exception $e){
        $thumb = "/skin/nopic.jpg";
    }
    ?>
    <img src="<?=$thumb?>">
    

    优化点说明

  5. 增加 ID、分表判断,防止空 SQL 查询报错
  6. try 捕获缩略图函数异常,函数失效也不会整页空白
  7. 多层兜底默认图,杜绝空路径传入函数
  8. 五、缓存清理全套操作

    后台【系统】→【数据更新】依次执行:

  9. 更新数据库缓存
  10. 删除栏目缓存
  11. 六、Windows 虚拟主机特殊情况

  12. IIS 开启父路径,否则图片路径读取失败
  13. 网站目录 IIS 用户添加写入权限
  14. PHP GD 库在 phpinfo 页面确认已启用
  15. 七、总结排查顺序(按优先级)

  16. 开启 PHP 错误提示,查看真实报错信息
  17. 临时删除所有自定义缩略图 / 二开代码测试
  18. 切换栏目模板为官方默认模板
  19. 检查resizepic目录读写权限、GD 库是否开启
  20. 核对表单是否携带 ecms_hashur 哈希参数
  21. 清理全站缓存,修复模型数据表
  22. 覆盖官方原版新增信息页面文件
  23.  
  24. 删除文件缓存
  25. 刷新静态页面 缓存堆积、旧模板残留代码会持续导致提交空白。

本文配套模板、静态源码可前往艾立兹素材库alisucai.com下载

发表评论 共有0条评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
公众号二维码

扫码关注公众号
获取全套技术教程