源代码修改错,导致ecshop后台管理员权限显示空白

来源:互联网 发布:java程序下载 编辑:程序博客网 时间:2024/05/16 14:50

经过上一篇安装好ecshop后,在后台闲逛时,又发现一个异常,在导航栏上点击设置导航栏,然后点击管理员列表,随便选一个管理员点分派权限,你会发现权限名称全部没有,后来在admin\templates\privilege_allot.htm中找到{$lang[$priv.action_code]}改成{$lang.$priv.action_code},还有{$lang[$list.action_code]}改成{$lang.$list.action_code},搞定


后来经我问了群里的朋友,都说{$lang[$priv.action_code]}这样的语法是正确的,那就奇怪了,我就重新再安装了ecshop,发现权限名都有显示,那看来是我把源代码修改坏了。

经过我不断的调试,我终于发现了在includes\cls_templates.PHP里面的555行附近

原来是

$val = preg_replace("/([^\[]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);

一开始我是这样修改

$val=preg_replace_callback("/([^\[]*)\]/is", function($r) { return '.'.str_replace('$','\$',$r[1]); }, $val);


最后经过调试得修改成这样

$val=preg_replace_callback("/([^\[]*)\]/is", function($r) { return '.'.$r[1]; }, $val);


这样就行了。

原创粉丝点击