日志文章


2006-08-08

【笨笨出品】Hack——永远免除类似官方的帖子跑到楼上的现象

造成这种现象的原因在于,官方的默认排序是按postdate,即发帖时间来排序
。而当有多台镜像并且这几台镜像时间不一致的时候,很容易造成这种后发帖的跑到楼上去的现象
还有一种情况就是在后台修改了时区以后,也会出现这种问题
其实只要改成按pid排序就行了啊!

修改方法:


打开read.php

找到

Copy code
  $query = $db->query("SELECT p.*,m.uid,m.username,m.qqface,m.gender, m.oicq, m.groupid,m.memberid,m.icon AS micon,m.hack,m.honor,m.signature,m.regdate,m.signchange,m.medals,m.showsign,m.payemail,md.postnum,md.digests,md.rvrc,md.money,md.credit,md.currency,md.thisvisit,md.onlinetime,md.starttime,md.meeggs,md.meflowers FROM pw_posts p LEFT JOIN pw_members m ON m.uid=p.authorid LEFT JOIN pw_memberdata md ON md.uid=p.authorid WHERE p.tid='$tid' AND p.ifcheck='1' ORDER BY postdate $asc LIMIT $start_limit, $readnum");



将后面的
Copy code
ORDER BY postdate

修改成
Copy code
ORDER BY pid


便可解决这个问题


类别: 无分类 |  评论(84) |  浏览(5099) |  收藏
一共有 84 条评论
笨笨啊 2006-08-09 00:17 Says:
我是因为服务器时区不对,后台调整过后,就变得大家都不能发帖了。不得已只好把所有的灌水机制取消一天
supwind 2006-08-09 00:10 Says:
那确实 我曾经就是因为从韩国的服务器改为国内的出现这个问题
笨笨啊 2006-08-09 00:07 Says:
当然也不否认,确实可以利用那一点,来实现那种效果
笨笨啊 2006-08-09 00:07 Says:
这个现象已经遇到过很多次了
笨笨啊 2006-08-09 00:06 Says:
Quote:
引用第12楼supwind2006-08-09 00:02发表的“”:
显然不是的

想想有的帖子 如一个专题贴 或者小说连载 楼主没有足够的楼来编辑 跟在后面不利于浏览和整理

此时就可以利用插入回复的功能 当然只能设置楼主和版主有权限
.......



按时间排序最大的一个毛病,就在于:在后台更改时区后,不是管理员的帐号且开放了灌水机制,并且在更改时区前一小段时间内发过帖,将在数小时之内无法发帖!
而且,在更改时区后发的帖子,有一大部分,都将不再排在最后,而会跑到前面去,以致于会员怀疑是不是发帖失败!因为跳转还是跳到最后一页的
supwind 2006-08-09 00:02 Says:
显然不是的

想想有的帖子 如一个专题贴 或者小说连载 楼主没有足够的楼来编辑 跟在后面不利于浏览和整理

此时就可以利用插入回复的功能 当然只能设置楼主和版主有权限

所以说按时间排序并不是一无是处的

有多个镜像的应该注意时间的统一 相差很小没事 一般只有回复特别密集才现跑到楼上的情况
笨笨啊 2006-08-08 23:50 Says:
插队是可耻滴~
笨笨啊 2006-08-08 23:50 Says:
呵呵,插在别人的楼前…………已经发生过很多次了
supwind 2006-08-08 23:36 Says:
利用发帖时间排序可以实现楼主插入回复的功能
3212556 2006-08-08 23:27 Says:
还不错第一层还有位子哈~
konsi 2006-08-08 23:22 Says:
支持一下~~
cqxty 2006-08-08 22:01 Says:
不错坐个6楼正是好楼层。
chuang_no1 2006-08-08 21:58 Says:
抢占沙发的行为已经成为了一大公害
andylin 2006-08-08 21:56 Says:
连这个也要抢啊..
笨笨啊 2006-08-08 21:55 Says:
xbox45 2006-08-08 21:54 Says:
我也来了
Seac 2006-08-08 21:52 Says:
这下沙发!没人跟我抢了吧!
« 1 2345» Pages: ( 1/5 total )