找回密码
 注册
查看: 3459|回复: 3
收起左侧

由于主题列表缓存引起管理框(adminbox)BUG解决方法:游客可见等

[复制链接]

5314

主题

8320

帖子

1万

积分

管理员

出售国内外虚拟空间

Rank: 10Rank: 10Rank: 10

积分
14665
帖子
8320
精华
67
体力
14665 点
蓝豆
2391 点
注册时间
2007-6-8

终身成就奖LY官方团队会员身份ID卡

发表于 2009-5-25 11:00:53 | 显示全部楼层 |阅读模式
thread.php代码不合理性

由于主题列表缓存文件也对管理框进行缓存,而且没有对当前访问缓存文件用户管理框进行重新更新。
造成管理员看后缓存更新,游客可以看到管理员看到的管理框。
而游客更新了缓存,管理员却看不到管理框。
  1. if ($fcache < 2) {//如果没有建立缓存就执行下面 ..............省略.................. if ($managecheck) { if ($thread[fid]==$fid) { $thread[adminbox]="<input type=\\"checkbox\\" name=\\"tidarray[]\\" value=\\"$thread[tid]\\" />"; } else { $thread[adminbox]="<input type=\\"checkbox\\" name=\\"tidarray[]\\" value=\\"$thread[tid]\\" disabled />"; } } ..............省略.................. $threaddb[$thread[tid]] = $thread;//问题,对$thread[adminbox]进行缓存 } else { //已经有缓存。 include_once(D_P."data/bbscache/fcache_{$fid}_{$page}.php"); if ($page == 1 && !$ifsort) { foreach ($threaddb as $key => $value) { //问题,没有对$thread[adminbox]进行当前用户权限更新。 $value[topped] && $ifsort = 1; break; } } }
复制代码

    [li]解决方法:

    thread.php
    查找并删除
    1. if ($managecheck) { if ($thread[fid]==$fid) { $thread[adminbox]="<input type=\\"checkbox\\" name=\\"tidarray[]\\" value=\\"$thread[tid]\\" />"; } else { $thread[adminbox]="<input type=\\"checkbox\\" name=\\"tidarray[]\\" value=\\"$thread[tid]\\" disabled />"; } }
    复制代码
    template\\wind\\thread.htm

    查找
    1. <!-- EOT; }if($thread[adminbox]){print <<<EOT --> <span style="margin-right:5px;">$thread[adminbox]</span> <!-- EOT; }if($thread[toolinfo]){print <<<EOT -->
    复制代码
    [/li]
修改为
游客,如果您要查看本帖隐藏内容请回复
出售国内或美国高性能虚拟空间,高速VPS以及服务器! 同时承接各种类型的网站制作,网站维护,支付宝交易安全放心!    联系QQ:6102031
懒得打字嘛,点击右侧快捷回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

网站公告上一条 /2 下一条

GMT+8, 2024-5-19 15:34 , Processed in 0.109375 second(s), 24 queries , Gzip On.

© 2006-2022 Powered by Discuz! X3.4

快速回复 返回顶部 返回列表