原因分析:
根据DedeCMS官方文档说明,出现这种问题可能是由于catalog_do.php文件中的header()函数存在问题。具体来说,如果在执行header()之前,文件中输出了空格、空行或任何字符,都会导致跳转失效。因此,需要仔细排查文件中是否存在多余的空格或空行,并将其删除,以确保功能正常运行。
解决方法:
1. 下载并编辑/dede/catalog_do.php文件。
A. 将以下代码:
header("location:article_add.php");
替换为:
echo "";
B. 将以下代码:
header("location:{$gurl}?channelid={$channelid}&cid={$cid}");
替换为:
echo "";
2. 下载并编辑/dede/archives_do.php文件。
将以下代码:
header("location:{$gurl}?aid=$aid");
修改为:
echo '';
如果上述方法无效,可以尝试以下步骤解决后台编辑文章空白的问题:
- 进入后台->系统->系统基本参数->核心设置->HTML编辑器选项,填写“fck”。对于正确配置的用户无需更改。
- 如果仍然无效,可以将FCK替换为其他编辑器(如CKEditor),以解决后台添加/编辑文章页面空白或无法显示的问题。
主要问题是:在添加文字后,页面变为空白,未跳转到发布成功页面,但栏目管理中确实新增了一篇文章,且点击查看内容时为空。重装系统并不能解决问题。
最终解决方案如下:
- 首先进入系统->系统设置->系统错误修复,修复之前生成的错误页面。
- 然后进入系统->系统设置->系统基本参数->其他选项->自动提取关键字,选择“否”,保存设置。
如果是系统升级导致的问题,可以尝试以下方法:
- 从DedeCMS 5.6升级到5.7后,发现部分栏目无法添加文章,添加后页面空白,查看文章状态显示为“未生成”。
- 经过排查,问题可能出在栏目的模板上,模板中使用了一个自定义函数IDReturnURL。
- 此函数在DedeCMS 5.7版本升级时被覆盖,需要重新定义。
以下是IDReturnURL函数的定义:
function IDReturnURL($ID) {
global $dsql;
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,
tp.defaultname,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath
from dede_archives arc left join dede_arctype tp on arc.typeid=tp.id where arc.id = " . $ID;
$row = $dsql->GetOne($query);
$ReturnURL = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
$row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
return $ReturnURL;
}
将上述代码添加到extend.func.php文件中,再次测试,问题即可解决。