dedecms http 500 错误的解决实践

dedecms 首页正常访问,但是文章页和栏目页访问无法访问,出现http 500 错误,并且后台发布文章没有提示发布成功的跳转,一片空白,但是文章能发布到数据库。后台更新生成文章,无法更新。 出现众多问题。仅查百度,又说是文件夹权限问题,有说是代码中出现@me问题,有说是php版本问题。

经过本人摸索和验证,发现是代码中出现{dede:field name=’typeid’ function=”GetTopTypename(@me)”/}的问题,把模板中的各个文件的含有GetTopTypename(@me)的dedecms语法中的语句都去掉,然后上传服务器取代原来的模板文件,重新后台更新文章,更新缓存。ok了!

值得注意的是,其他含有@me的dedecms语法语句没问题,不需要删除。

由此可见,dedecms这个系统有多么的烂!

今天又发现,首页正常访问,文章页正常访问,但是栏目页访问出现http 500 错误。经查栏目页模板文件源码,发现有

{dede:field.typeid  function="GetTypeNum(@me)"/} 删除掉function="GetTypeNum(@me)"后发现栏目页能够正常访问了。

修改方法:

涉及到文件:include/common.func.php

在include/common.func.php最下面也就是?>前加入以下代码

代码如下:
function GetTotalArc($tid){
global $dsql;
$sql = GetSonIds($tid);
$row = $dsql->GetOne(“Select count(id) as dd From dede_archives where typeid in({$sql})”);
return $row[‘dd’];
}
调用方法:

代码如下:
[field:ID function=’GetTotalArc(@me)’/]

{dede:field.typeid function='GetTotalArc(@me)' /}

[field:ID runphp=’yes’] @me = GetTotalArc(@me);[/field:ID]