在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
最后一个方法,遍历里边一定要把当前按钮的上一级找到,找不到就再次调用当前方法,所以菜单一多,直接死。