下面是m/include/showu.php文件里面的部分代码(已注释):
- $user_icon = explode('|', $userdb['icon']);
- if ($user_icon[4] && $userdb['tooltime'] < $timestamp-86400) {
- $userdb['icon'] = "$user_icon[0]|$user_icon[1]|$user_icon[2]|$user_icon[3]|0";
- $db -> update("UPDATE pw_members SET icon=" . pwEscape($userdb['icon'], false) . " WHERE uid=" . pwEscape($userdb['uid']));
- $usericon = showfacedesign($userdb['icon'], true);
- }
看第二行代码就知道是和猪头卡道具有关,第五行读取用户头像($usericon,下面第8行调用):
- <div class="block mymessage">
- <table width="100%" border="0" cellspacing="2">
- <tr>
- <td>UID:$userdb[uid]<br />
- 用户名: $userdb[username]<br />
- 性别: $userdb[gender]<br/>
- </td>
- <td style="line-height:1em;width:58px"><img src="$usericon" width="48" height="48" alt="头像"/><br />
- </td>
- </tr>
- </table>
- </div>
只是这个$userdb['icon'],也就是第三行的代码好像不太对。另外,最重要,最关键的是第四行,
它竟然更新pw_members的icon,也就是头像字段!既然第二行的判断条件$user_icon[4]成立(至于后面的$userdb['tooltime'] < $timestamp-86400,就有些不理解了,86400,也就是一天,这个判断是什么鬼,有什么意义?),也就是说该用户已经被猪头了,为什么还要执行更新操作呢?况且,这里原来只需要查询和判断,哪里用得着更新呢?
很难理解这代码是如何写出来的?=================分隔线====================
2021年2月22更新
这段代码今天看着还是迷糊!
第一行,打散,这个明白;
第二行,是一个判断,如果已经使用了猪头卡$user_icon[4](等于1)并且道具使用24小时后;
第四行更新第三行代码里的的头像数据。第5个数据由1变为0。不过,似乎数据变少了(02/2.jpg|3|||1|1|1|1452880621)8个变成了5个。
理下来后,逻辑没有问题啊,只是怎么执行呢?
实际上,上面的代码在文件中已经注释了,也就是不起作用了,研究下也没大意义。但自动恢复头像又是怎么回事呢?时效应该是24小时,见80楼及之前的测试。