早晨还没睡醒的时候,就看到 @justyy 在微信群里艾特我,并发过来一个截图,说是微信公众号查STEEMIT见证人信息有BUG。
(图源 :pixabay)
我写的程序怎么可能有BUG呢?况且查了这么多见证人也没发现啥问题啊,一定是他使用的姿势不对,哦,我想起来了,一定是他查询的这个见证人排名超出了200名以外,因为我只处理200名以内的见证人。嗯,就是这样了,继续睡。
等我睡醒了,再仔细一看这个截图,这还不是BUG是啥啊?得票这么低的见证人,居然被我算成了TOP20,并且收益也这么高,这显然不对嘛。
于是看了一下之前的程序,我擦,这写的都是什么乱七八糟的,根本看不懂啊,费了半天劲,总算理清了程序的流程,然后也找到了问题所在。
根本原因就是我只处理200名以内的见证人,对200名以外的见证人没有妥善处理。其实我也处理了,但是处理的程序有些漏洞,PHP对一个不存在的变量,读出来的数据是0。正确的做法是,在这之前,判断一下变量是否存在:isset($info["rank"])
。
这样修改之后,类型已经变成正常的TimeShare
,不再是TOP20
了,每块的奖励也正常了。但是每天出块以及每天收益啥的数据都为零,这很正常,因为我没计算200名以外的见证人嘛,我之前觉得200名以外都不会去查这个信息的。不过既然有人查了,那么再加大一些吧,加大到400吧(一共有没有400呢,哈哈)
这下都正确了,哈哈,只是这哥们每天0.1个STEEM能够上服务器成本否?心疼呀。另外感谢 @justyy 报告了这个BUG,CN区还没有投他见证人的朋友,去投他一票吧。😀
对了,顺便安利公众号,扫码即可添加:
This page is synchronized from the post: 解决了一个微信公众号查询见证人信息的BUG