首页| 版块| 我的| 发帖| 消息
主题:2017年1月2日:解决后台论坛模式名称和已安装插件名称不显示的问题
为你守候 
今天早上起得稍微早些,6点半左右吧,继续研究论坛模式名称不显示的问题,结果两个多小时过后还是没办法解决。后来注意到已经安装的插件名称也是不显示(老问题了,也是发现了解决不了),就研究它去了,反复修改模板文件还是不显示;可能是位置的关系——第一单元格?调整后也不行;想在插件目录后面直接调用下插件名称,结果也不显示。这个就很奇怪了,于是回头查看php文件(admin/settings.php),有这样一段:
foreach ($db_hackdb as $key => $value) {
        $value[0] = htmlspecialchars($value[0]);
        ${$value[1].'_'.$value[2]} = 'SELECTED';
        $value[4] = EncodeUrl("$basename&action=delete&id=$value[1]");
        if (file_exists(R_P."/hack/$key/index.php")) {
            $installdb['index'][$key] = $value;
        } else {
            $installdb['noindex'][$key] = $value;
        }
    }
第2行那个$value[0]就是插件名称,它用htmlspecialchars()函数输出,百度查看这个函数:
定义和用法
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号)成为 &
" (双引号)成为 "
' (单引号)成为 '
< (小于)成为 (大于)成为 >

插件名称还要转换为html实体?况且几乎没有可能包括上述几个预定义字符啊!(测试用“”提交保存插件名称后竟然可以显示)于是“//”注释第2行代码,根本就用不着!测试成功!

再回头看论坛模式名称不显示的问题,竟然也是用的这个htmlspecialchars() 函数!我真不知道说啥好了!
$db_bbsname = htmlspecialchars($db_bbsname);
$db_areaname = htmlspecialchars($db_areaname);
$db_modename = htmlspecialchars($db_modename);

“//”注释,上传覆盖,成功!论坛模式名称和已安装插件名称不显示的问题终于解决了!
为你守候回帖于2017-01-02 12:09[查看电脑版]
下一楼»:呵呵呵呵呵

查看全部回帖(7)
«返回主帖