global $showIPs; if (!NumRows($rGuests)) { return "<tr class=\"cell0\"><td colspan=\"6\">{$noMsg}</td></tr>"; } $i = 1; while ($guest = Fetch($rGuests)) { $cellClass = ($cellClass + 1) % 2; if ($guest['date']) { $lastUrl = "<a href=\"" . FilterURL($guest['lasturl']) . "\">" . FilterURL($guest['lasturl']) . "</a>"; } else { $lastUrl = __("None"); } $guestList .= "\n\t\t<tr class=\"cell{$cellClass}\">\n\t\t\t<td>{$i}</td>\n\t\t\t<td colspan=\"2\" title=\"" . htmlspecialchars($guest['useragent']) . "\">" . htmlspecialchars(substr($guest['useragent'], 0, 65)) . "</td>\n\t\t\t<td>" . cdate("d-m-y G:i:s", $guest['date']) . "</td>\n\t\t\t<td>{$lastUrl}</td>"; if ($showIPs) { $guestList .= "<td>" . formatIP($guest['ip']) . "</td>"; } $guestList .= "</tr>"; $i++; } return $guestList; } $guestList = listGuests($rGuests, __("No guests")); $botList = listGuests($rBots, __("No bots")); write("\n\t<table class=\"outline margin\">\n\t\t<tr class=\"header0\">\n\t\t\t<th colspan=\"6\">\n\t\t\t\t" . __("Online users") . "\n\t\t\t</th>\n\t\t</tr>\n\t\t<tr class=\"header1\">\n\t\t\t<th style=\"width: 30px;\">\n\t\t\t\t#\n\t\t\t</th>\n\t\t\t<th>\n\t\t\t\t" . __("Name") . "\n\t\t\t</th>\n\t\t\t<th style=\"width: 140px;\">\n\t\t\t\t" . __("Last post") . "\n\t\t\t</th>\n\t\t\t<th style=\"width: 140px;\">\n\t\t\t\t" . __("Last view") . "\n\t\t\t</th>\n\t\t\t<th>\n\t\t\t\t" . __("URL") . "\n\t\t\t</th>\n" . ($showIPs ? "\n\t\t\t<th style=\"width: 140px;\">\n\t\t\t\t" . __("IP") . "\n\t\t\t</th>\n" : "") . "\n\t\t</tr>\n\t\t{0}\n\n\t\t<tr class=\"header0\">\n\t\t\t<th colspan=\"6\">\n\t\t\t\t" . __("Guests") . "\n\t\t\t</th>\n\t\t</tr>\n\t\t{1}\n\t\t<tr class=\"header0\">\n\t\t\t<th colspan=\"6\">\n\t\t\t\t" . __("Bots") . "\n\t\t\t</th>\n\t\t</tr>\n\t\t{2}\n\t</table>\n", $userList, $guestList, $botList); function FilterURL($url) { $url = str_replace('_', ' ', urldecode($url)); $url = htmlspecialchars($url); $url = preg_replace("@&?(key|token)=[0-9a-f]{40,64}@i", '', $url); return $url; }
$udata['num'] = $i++; $udata['link'] = UserLink($user); $udata['lastPost'] = $user['lastposttime'] ? cdate("d-m-y G:i:s", $user['lastposttime']) : __("Never"); $udata['lastView'] = cdate("d-m-y G:i:s", $user['lastactivity']); if ($user['lasturl']) { $udata['lastURL'] = "<a href=\"" . FilterURL($user['lasturl']) . "\">" . FilterURL($user['lasturl']) . "</a>"; } else { $udata['lastURL'] = __("None"); } if ($showIPs) { $udata['ip'] = formatIP($user['lastip']); } $userList[] = $udata; } $guestList = listGuests($rGuests); $botList = listGuests($rBots); RenderTemplate('onlinelist', array('timelinks' => $spanList, 'showIPs' => $showIPs, 'users' => $userList, 'guests' => $guestList, 'bots' => $botList)); function FilterURL($url) { //$url = str_replace('_', ' ', urldecode($url)); // what? $url = htmlspecialchars($url); $url = preg_replace("@(&)?(key|token)=[0-9a-f]{40,64}@i", '', $url); return $url; } function listGuests($rGuests) { global $showIPs; $guestList = array(); $i = 1; while ($guest = Fetch($rGuests)) { $gdata = array();