• 2387阅读
  • 29回复

关于在线列表用户名显示错误 [复制链接] [手机版]

上一主题 下一主题
离线zhangjingyu

只看楼主 倒序阅读 使用道具 绿 楼主  发表于: 2019-01-04 10:16:32 星期五
关键词: 论坛
在线用户列表位于论坛首页,最下面。
如图,我的用户名“zhangjingyu”显示成了“蝯hangjingyu”。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 置顶 (来自8楼) 发表于: 2019-01-04 19:37:30 星期五  点亮(0)
—— 管理操作 •  zhangjingyu 执行 帖内置顶 操作 (2019-01-04 23:16) ——
所以,如果以后再遇到这个问题,可以删除data/bbscache/online(guest).php缓存文件
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 沙发  发表于: 2019-01-04 10:24:22 星期五  点亮(0)
论坛首页文件index.htm
第8行的$index_whosonline负责显示
  1. <!--
  2. EOT;
  3. if($db_indexonline){
  4. if($online == 'yes' && $index_whosonline){print <<<EOT
  5. -->
  6.                 <a name="online"></a> [<a href="javascript:;" onclick="window.location='$db_bbsurl/index.php?m=bbs&online=no#online';return false">关闭在线列表</a>]
  7.                 <hr class="hrA">
  8.                 $index_whosonline
  9. <!--
  10. EOT;
  11. }else{print <<<EOT
  12. -->
  13.                 <a name="online"></a> [<a href="javascript:;" onclick="window.location='$db_bbsurl/index.php?m=bbs&online=yes#online';return false" rel="nofollow" >打开在线列表</a>]
  14. <!--
  15. EOT;
  16. }}print <<<EOT
  17. -->
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 板凳  发表于: 2019-01-04 15:02:01 星期五  点亮(0)
用我的帐号测试,也会出现这样的情况
本帖提到的人: @zhangjingyu
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 地板  发表于: 2019-01-04 15:06:08 星期五  点亮(0)
搜索“蝯hangjingyu”,只在data/bbscache/online.php文件中有记录。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 4楼 发表于: 2019-01-04 15:45:14 星期五  点亮(0)
online.php是一个缓存文件,那么必然有一个文件会生成该文件。
经过搜索,应该是require/userglobal.php文件:
  1. function addonlinefile($offset,$uid) {
  2.     global $windid,$groupid,$lastvisit,$timestamp,$onlineip,$db_onlinetime,$fid,$tid,$wind_in,$tdtime, $db_olsize,$db_today;
  3.     if (strlen($fid)>4) $fidwt = ''; else $fidwt = $fid;
  4.     if (strlen($tid)>7) $tidwt = ''; else $tidwt = $tid;
  5.     $wherebbsyou = getuseraction($fid,$wind_in);
  6.     $acttime = get_date($timestamp,'m-d H:i');
  7.     $D_name = "data/bbscache/online.php";
  8.     if (!file_exists(D_P.$D_name)) {
  9.         pwCache::writeover(D_P.$D_name,str_pad("<?php die;?>",96)."\n");
  10.     }
  11.     if (GetCookie('hideid') != 1) {
  12.         $newonline = "$windid\t$timestamp\t$onlineip\t$fidwt\t$tidwt\t$groupid\t$wherebbsyou\t$acttime\t$uid\t";
  13.         $newonline = str_pad($newonline,$db_olsize)."\n";
  14.         if (checkinline(D_P.$D_name,$offset,$windid)) {
  15.             $isModify = 0;
  16.             writeinline(D_P.$D_name,$newonline,$offset);
  17.         } else {
  18.             list($offset,$isModify)=GetInsertOffset(D_P.$D_name);
  19.             writeinline(D_P.$D_name,$newonline,$offset);
  20.         }
  21.         if ($db_today && $timestamp-$lastvisit>$db_onlinetime) {
  22.             require_once(R_P.'require/today.php');
  23.         }
  24.     } elseif (GetCookie('hideid') == 1) {
  25.         require_once(R_P.'require/hidden.php');
  26.     }
  27.     if ($isModify === 1) {
  28.         //频度可控制性
  29.         ModifySelectFile(D_P."data/bbscache/guest.php");
  30.     }
  31.     return array($offset,$isModify);
  32. }
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 5楼 发表于: 2019-01-04 16:17:46 星期五  点亮(0)
第9行应该是指定缓存文件名及路径: $D_name = "data/bbscache/online.php";;
第10行,if (!file_exists(D_P.$D_name)) {
如果不存在online.php文件,那么:
第11行, pwCache::writeover(D_P.$D_name,str_pad("<?php die;?>",96)."\n");
建立文件online.php,内容为"<?php die;?>",并用str_pad()函数,用空格填充到96个字符长。

第14行
$newonline = "$windid\t$timestamp\t$onlineip\t$fidwt\t$tidwt\t$groupid\t$wherebbsyou\t$acttime\t$uid\t";
就是写入文件的内容,对应:用户名,时间戳,ip,所在版块,所在主题,用户组,位置,活动时间,uid。
如(online.php文件内的部分内容):
zhangjingyu    1546588067    127.0.0.1    3    3524    3    论坛管理◇家 ..    01-04 15:47    2

第15行 $newonline = str_pad($newonline,$db_olsize)."\n";
用str_pad()函数对上面的$newonline进行了填充。通过搜索,它的定义和用法是:
str_pad() 函数把字符串填充为新的长度。
语法
str_pad(string,length,pad_string,pad_type)
参数    描述
string    必需。规定要填充的字符串。
length    必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。
pad_string    可选。规定供填充使用的字符串。默认是空白。
pad_type    可选。规定填充字符串的哪边。可能的值:

STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
STR_PAD_LEFT - 填充字符串的左侧。
STR_PAD_RIGHT - 填充字符串的右侧。默认。

这个函数没接触过。
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <?php
  5. $str = "Hello World";
  6. echo str_pad($str,30,".:",STR_PAD_BOTH);
  7. ?>  
  8. </body>
  9. </html>
运行结果:.:.:.:.:.Hello World.:.:.:.:.:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <?php
  5. $str = "Hello World";
  6. echo str_pad($str,30,".",STR_PAD_LEFT);
  7. ?>  
  8. </body>
  9. </html>
运行结果:...................Hello World

str_pad() 函数的作用应该就是把字符串填充到指定的长度,比如上面第15行的:
$newonline = str_pad($newonline,$db_olsize)."\n";
搜索“$db_olsize”,全局文件global.php里“$db_olsize    = 96;”(难怪第11行代码里也有96,原来$db_olsize也是96)。那么上面代码的意思就是用空格把$newonline填充到96个字符的长度。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 6楼 发表于: 2019-01-04 18:44:03 星期五  点亮(0)
上午没有花太多时间继续追踪1楼提到的$index_whosonline,而是在本地子论坛下继续测试,发现没有主帖提到的情况;又用本论坛的全部论坛文件重建了一个论坛,测试也没有主帖提到的问题。说明,问题的根源不在论坛文件上。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 7楼 发表于: 2019-01-04 19:36:27 星期五  点亮(0)
不记得以前是不是也遇到过这种情况,今天也曾想会不会是集成环境的原因?或者论坛文件?经过上面的测试,都不是。那就只能是缓存文件了。后来删除了这个online.php缓存文件,结果没问题了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 8楼 发表于: 2019-01-04 19:37:30 星期五  点亮(0)
—— 管理操作 •  zhangjingyu 执行 帖内置顶 操作 (2019-01-04 23:16) ——
所以,如果以后再遇到这个问题,可以删除data/bbscache/online(guest).php缓存文件
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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