• 2047阅读
  • 32回复

关于匿名帖的进一步修改 [复制链接] [手机版]

上一主题 下一主题
离线zhangjingyu

只看该作者 10楼 发表于: 2016-11-08 11:40:38 星期二  点亮(0)
回复9楼 zhangjingyu 的帖子
zhangjingyu 手机版查看匿名帖,主题阅读页的“回帖”里和全部回帖页就连“匿名”都不显示(显示为空),也算正常;帖子内容页正常,显示作者为“匿名”,空间链接uid=0,但“上一楼”“下一楼”会显示出真实的帖子作者,并且链接地址是真实作者的空间链接。

——本帖通过莘祺网手机版回复. (2016-11-08 00:15)   
所以,需要格式化匿名帖作者的显示名称和空间链接uid(按帖子内容页,应该指定uid=0)或者直接让匿名作者显示为空,这样就和主题阅读页的“回帖”、全部回帖页保持一致了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 11楼 发表于: 2016-11-08 12:22:07 星期二  点亮(0)
一个上午查看了多个文件,包括相关函数的定义方法和数据库查询语句等,
reply.htm
  1. <div class="post_content">
  2. <a href="index.php?a=myhome&uid=$ht[authorid]" class="zuoze">$ht[author]</a> $ht[content]<br />
  3. $ht[aidimgs]</div>
  4. <div class="section"><a href="index.php?a=myhome&uid=$ht[authorid]">$ht[author]</a>回帖于$ht[postdate]</div>
  5. …………
  6. if($nextr['pid'] != 0){print <<<EOT
  7. -->
  8. <a href="index.php?a=reply&tid=$tid&pid=$nextr[pid]">下一楼»</a>:$nextr[content]<span class="post_author">(<a href="index.php?a=myhome&uid=$nextr[authorid]">$nextr[author]</a>)</span><br />
  9. <!--
  10. EOT;
  11.     }
  12. if($prer['pid'] != 0){print <<<EOT
  13. -->
  14. <a href="index.php?a=reply&tid=$tid&pid=$prer[pid]">«上一楼</a>:$prer[content]<span class="post_author">(<a href="index.php?a=myhome&uid=$prer[authorid]">$prer[author]</a>)</span>

第4行$ht[author],第8行$nextr[author],第14行$prer[author],再看
reply.php
  1. $ht = viewOneReply ( $tid, $pid ,$rt ['ptable'] );
  2. $nextr = nextReply ( $tid, $pid, $rt ['ptable'], 1 );
  3. $prer = nextReply ( $tid, $pid, $rt ['ptable'], - 1 );

再看viewOneReply和nextReply函数,在threadfunction.php文件里
  1. function viewOneReply($tid, $pid, $ptable) {
  2.     global $db, $db_waplimit, $c_page,$db_anonymousname,$pwAnonyHide,$winduid;
  3.     $pw_posts = GetPtable ( $ptable );
  4.     $sql = "SELECT pid,subject,author,authorid,content,postdate,anonymous,aid FROM $pw_posts WHERE pid=" . pwEscape ( $pid );
  5.     $ct = $db->get_one ( $sql );
  6.     if ($ct) {
  7.         $ct ['subject'] = str_replace ( ' ', '', wap_cv ( $ct ['subject'] ) );
  8.         $content = viewContent ( $ct ['content'] );
  9.         $yxqw = "";

  1. function nextReply($tid, $pid, $ptable, $order) {
  2.     global $db;
  3.     $pw_posts = GetPtable ( $ptable );
  4.     if ($order == 1) {
  5.         $sql = "SELECT pid,content,author,authorid,content,postdate,anonymous FROM $pw_posts WHERE tid=" . pwEscape ( $tid ) . " AND ifcheck=1 and pid>" . pwEscape ( $pid ) . " ORDER BY postdate limit 1";
  6.     } else {
  7.         $sql = "SELECT pid,subject,author,authorid,content,postdate,anonymous FROM $pw_posts WHERE tid=" . pwEscape ( $tid ) . " AND ifcheck=1 and pid<" . pwEscape ( $pid ) . " ORDER BY postdate desc limit 1";
  8.     }
  9.     $ct = $db->get_one ( $sql );
  10.     if ($ct) {
  11.         $ct ['content'] = replySubject ( $ct ['content'] );
  12.     } else {
  13.         $ct = array ("pid" => 0, "content" => "" );
  14.     }
  15.     return $ct;
  16. }

终于在主题阅读面read.php文件中发现了有价值的代码:
$rt['author']   = $rt['anonymous'] ? $db_anonymousname : $rt['author'];
也许这正是我想要的!只要把匿名作者格式化成后台设置的匿名名称(匿名)或者直接显示为空就可以了。于是,稍微修改后在上面reply.php代码的后面添加:
  1. $nextr['author']   = $nextr['anonymous'] ? $db_anonymousname : $nextr['author'];

匿名作者就显示为“匿名”了,不过空间链接地址还是真实作者的,所以同样的需要格式化下(指定uid=0):
  1. $nextr['authorid']   = $nextr['anonymous'] ? '0' : $nextr['authorid'];
[ 此帖被zhangjingyu在2016-11-08 13:17重新编辑 ]
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 12楼 发表于: 2016-11-08 13:18:23 星期二  点亮(0)
总结下,共有两种修改方法。
m/control/reply.php文件
  1. $ht = viewOneReply ( $tid, $pid ,$rt ['ptable'] );
  2. $nextr = nextReply ( $tid, $pid, $rt ['ptable'], 1 );
  3. $prer = nextReply ( $tid, $pid, $rt ['ptable'], - 1 );

的后面添加如下代码:

1.同主题阅读页的“回帖”和全部回帖页保持一致,匿名作者显示为空,这样就没有作者的空间链接,也就不用考虑uid的问题。
  1. $nextr['author'] = $nextr['anonymous'] ? '' : $nextr['author'];
  2. $prer['author'] = $prer['anonymous'] ? '' : $prer['author'];


2.显示为后台设置的匿名显示名称或者自己指定任意一个匿名作者名称,同时要指定uid=0。
  1. //$nextr['author'] = $nextr['anonymous'] ? $db_anonymousname : $nextr['author'];
  2. $nextr['author'] = $nextr['anonymous'] ? '自定义匿名或空' : $nextr['author'];
  3. $nextr['authorid'] = $nextr['anonymous'] ? '0' : $nextr['authorid'];
  4. //$prer['author'] = $prer['anonymous'] ? $db_anonymousname : $prer['author'];
  5. $prer['author'] = $prer['anonymous'] ? '自定义匿名或空' : $prer['author'];
  6. $prer['authorid'] = $prer['anonymous'] ? '0' : $prer['authorid'];

前三行是下一楼,后三行是上一楼。第一行“//”注释的为后台设置的匿名显示名称,第二行为自定义要显示的名称,第三行为指定匿名作者的uid=0。
[ 此帖被zhangjingyu在2016-11-17 19:39重新编辑 ]
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 13楼 发表于: 2016-11-08 18:34:31 星期二  点亮(0)
好了,过程记录编辑完了,更新文件测试下,看看到底是不是这样的?
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 14楼 发表于: 2016-11-08 19:14:05 星期二  点亮(0)
第一次修改文件后页面竟然出错了,当时保存文件时有错误提示没当回事儿,结果就是不给面子。 重新查看文件,原来是在$nextr['author']和$prer['author']后面分别多了两个“??”,可能是非法空格造成的,删除后保存文件正常,覆盖测试,终于好了。

上传手机截图,可能不是挺清晰的,不过,关键是有意义啊。
下一楼:管理员也来凑个热闹()(括号内显示为空)
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 15楼 发表于: 2016-11-08 19:43:48 星期二  点亮(0)
好了,手机版意外发现的问题解决了,下面继续回到主帖说的问题。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 16楼 发表于: 2016-11-08 19:54:31 星期二  点亮(0)
截图说明:

gid=5,说明该匿名帖作者是论坛版主,如果知道都有谁是论坛版主,有没有可能猜出来是谁?
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 17楼 发表于: 2016-11-08 20:20:23 星期二  点亮(0)
解决方法:
不是在第二行添加用户组id,像oicq,ip地址,勋章,来自那样显示为空,而是在第4行后面添加:
$read['groupid'] = 0;
这样,所有匿名用户的组id都是0,就不用猜是谁了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 18楼 发表于: 2016-11-08 20:25:23 星期二  点亮(0)
好,更新文件测试。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 19楼 发表于: 2016-11-08 20:33:45 星期二  点亮(0)
沙发和5楼的那个“*”链接为http://www.vtu425.com/profile.php?action=permission&gid=0,不会再显示用户组id了。
这回修改没有出错,还是给面子的。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!