本帖最后由 mark35 于 2013-1-5 18:46 编辑
Discuz7.2 添加导航栏,登录后台依次进入 界面->界面设置->导航栏 可进行添加导航栏操作。通过点击某个导航栏进入导航栏编辑界面,如果菜单链接中包含 &这个分割符,那么当你提交之后菜单链接中所有&都会变成 这样的符号。
比如导航链接是
- http://zuoyifu.net/viewthread.php?tid=2063&test=1
复制代码
将会变成
- viewthread.php?tid=2063&test=1
复制代码
问题是在 admin/misc.inc.php 文件中,line1289:
- $urlnew = dhtmlspecialchars(trim($urlnew));
复制代码
line1298:
- $urladd = $nav['type'] == '1' && $urlnew ? ", url='".dhtmlspecialchars($urlnew)."'" : '';
复制代码
对提交的菜单链接进行了两次 htmlspecialchars() 处理,结果一个 & 第一次被转义成然后其中的&再被第二次转义,结果就变成
修复方法:
把 line1298替换为如下即可
- $urladd = $nav['type'] == 1 && $urlnew ? ", url='". str_replace('&', '&', $urlnew). "'" : '';
复制代码 |