Home  >  Article  >  Backend Development  >  PHPCMS后台设置角色权限时,突然出现500错误,怎么解决呢?

PHPCMS后台设置角色权限时,突然出现500错误,怎么解决呢?

WBOY
WBOYOriginal
2016-06-20 12:46:091372browse


在PHPcms后台设置角色权限时,点击默认站点出现500错误,如上图。
正常情况下如下图所示。本来好好的,不知道怎么的就突然不好使了,请高手解答??这是怎么回事呢?


回复讨论(解决方案)

那个请求有严重的语法错误了吧,进去下断点看看

这个请求调用的文件和本地的是一样的,如果有语法错误错误的话,为何本地的正常,服务器上的不正常了呢?

看错误。

程序执行到foreach前面不报错
foreach ($result as $n=>$t) {
$result[$n]['cname'] = L($t['name'],'',$modules);
$result[$n]['checked'] = ($this->op->is_checked($t,$_GET['roleid'],$siteid, $priv_data))? ' checked' : '';
$result[$n]['level'] = $this->op->get_level($t['id'],$result);
$result[$n]['parentid_node'] = ($t['parentid'])? ' class="child-of-node-'.$t['parentid'].'"' : '';
}
程序执行到foreach后面 就报500错误

也就是foreach这里有错误了,但是在下实在看不明白foreach循环是如何导致的500错误的

500 是服务器拒绝响应,一般是 php 程序出现了错误。
你不给出错误信息,神仙也帮不了你

如果说 本地的正常,服务器上的不正常 那么只能说明程序没有语法错误,但不表示不出现逻辑错误
比如 除0、变量值非法、字段找不到、。。。。
另外还与 php 版本、配置都有关系

在php程序中,使用 ini_set("display_errors", "On"); error_reporting(E_ALL); 开启错误提示,也没有错误信息。而此时的状态码却变成了200,但是右侧却还是没有出现想要的内容。对phpcms真是无语了,本来好使的,再点击就不能用了,有点让人摸不着头脑

如果说与配置、php版本有问题的话,那为何用了以前用着没问题,现在却莫名其妙的出现了问题呢?搞不懂是程序的问题、服务器的问题、还是权限的问题

像文件夹读写权限,路径,php版本,php环境设置,服务器软件不同,都可能引起错误

目前也在用PHPCMS的底层代码,他们的权限管理部分有个很低级的错误。
/modules/admin/classes/role_op.class.php
最后一个方法,遍历里边一定要把当前按钮的上一级找到,找不到就再次调用当前方法,所以菜单一多,直接死。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn