PDA

View Full Version : درخواست query برای نمایش کاربران انلاین ویبولتین



alasht
جمعه 17 دی 1389, 00:11 صبح
با سلام خدمت تمام دوستان
من قبلا یه تاپیک مشابه زدم حدود 1 ماه پیش اما به نتیجه نرسیدم
حالا من با کمی تغییر دوباره سوالمو می پریم
یه هک برای ویبولتین هست که کاربران انلاین رو تو انجمن نشون میده
میخواستم ببینم کسی میتونه با کمک این هک یه query بنویسه که بشه تو وب سایتم که جدا از ویبولتین هست اعضای انلاین رو نشون بدم ؟

اینم از هک




<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="woap" active="1">
<title>Whois Online - AdminCP</title>
<description>http://www.tvpano.com/</description>
<version>2.0.0</version>
<url>http://www.tvpano.com/</url>
<versioncheckurl />
<apm_releasedate>1223787600</apm_releasedate>
<apm_author>H.Atakan KOC</apm_author>
<apm_relatedurl />
<apm_extrainfo>http://www.tvpano.com/</apm_extrainfo>
<apm_extraedit />
<dependencies>
</dependencies>
<codes>
</codes>
<templates>
</templates>
<plugins>
<plugin active="1" executionorder="5">
<title>Whois Online - AdminCP</title>
<hookname>admin_index_main1</hookname>
<phpcode><![CDATA[require_once(DIR . '/includes/functions_bigthree.php');
$datecut = TIMENOW - $vbulletin->options['cookietimeout'];
$numbervisible = 0;
$numberregistered = 0;
$numberguest = 0;

$forumusers = $db->query_read_slave("
SELECT
user.username, (user.options & " . $vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible, user.usergroupid,
session.userid, session.inforum, session.lastactivity,
IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
FROM " . TABLE_PREFIX . "session AS session
LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)
WHERE session.lastactivity > $datecut
" . iif($vbulletin->options['displayloggedin'] == 1 OR $vbulletin->options['displayloggedin'] == 3, "ORDER BY username ASC") . "
");
if ($vbulletin->userinfo['userid'])
{
// fakes the user being online for an initial page view of index.php
$vbulletin->userinfo['joingroupid'] = iif($vbulletin->userinfo['displaygroupid'], $vbulletin->userinfo['displaygroupid'], $vbulletin->userinfo['usergroupid']);
$userinfos = array
(
$vbulletin->userinfo['userid'] => array
(
'userid' =>& $vbulletin->userinfo['userid'],
'username' =>& $vbulletin->userinfo['username'],
'invisible' =>& $vbulletin->userinfo['invisible'],
'inforum' => 0,
'lastactivity' => TIMENOW,
'usergroupid' =>& $vbulletin->userinfo['usergroupid'],
'displaygroupid' =>& $vbulletin->userinfo['displaygroupid'],
'infractiongroupid' =>& $vbulletin->userinfo['infractiongroupid'],
)
);
}
else
{
$userinfos = array();
}
$inforum = array();

while ($loggedin = $db->fetch_array($forumusers))
{
$userid = $loggedin['userid'];
if (!$userid)
{ // Guest
$numberguest++;
$inforum["$loggedin[inforum]"]++;
}
else if (empty($userinfos["$userid"]) OR ($userinfos["$userid"]['lastactivity'] < $loggedin['lastactivity']))
{
$userinfos["$userid"] = $loggedin;
}
}

if (!$vbulletin->userinfo['userid'] AND $numberguest == 0)
{
$numberguest++;
}

foreach ($userinfos AS $userid => $loggedin)
{
$numberregistered++;
if ($userid != $vbulletin->userinfo['userid'])
{
$inforum["$loggedin[inforum]"]++;
}
fetch_musername($loggedin);

($hook = vBulletinHook::fetch_hook('forumhome_loggedinuser' )) ? eval($hook) : false;

if (fetch_online_status($loggedin))
{
$numbervisible++;
// eval('$activeusers .= ", ' . fetch_template('forumhome_loggedinuser') . '";');
$activeusers .= ", <a href=\"user.php?do=edit&amp;u=".$loggedin[userid]."\">" . $loggedin[musername] . "</a>";
}
}

// memory saving
unset($userinfos, $loggedin);

$activeusers = substr($activeusers, 2); // get rid of initial comma

$db->free_result($forumusers);

$totalonline = $numberregistered + $numberguest;
$numberinvisible = $numberregistered - $numbervisible;
print_table_start();
print_table_header("Whois Online - Total Online : ".$totalonline." (".$numberregistered." members, ".$numberguest." guests and ".$numberinvisible." visible)",3);
echo "<tr><td class=\"alt1\" width=\"100%\">";
echo $activeusers;
echo "</td></tr>";
print_table_footer(2, '', '', 0);]]></phpcode>
</plugin>
</plugins>
<phrases>
</phrases>
<options>
</options>
<helptopics>
</helptopics>
<cronentries>
</cronentries>
<faqentries>
</faqentries>
</product>

alasht
جمعه 17 دی 1389, 00:19 صبح
فکر کنم این query رو اگه کسی بتونه به یه query معمولی تبدیل کنه مشکل حل میشه
من چون با توابع و کلاسها و متغیرهای ویبولتین اشنایی ندارم نمی دونم به جای اونا چی بزارم ممنون میشم دوستان کمک کنن


$forumusers = $db->query_read_slave("
SELECT
user.username, (user.options & " . $vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible, user.usergroupid,
session.userid, session.inforum, session.lastactivity,
IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
FROM " . TABLE_PREFIX . "session AS session
LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)
WHERE session.lastactivity > $datecut
" . iif($vbulletin->options['displayloggedin'] == 1 OR $vbulletin->options['displayloggedin'] == 3, "ORDER BY username ASC") . "
");

alasht
جمعه 17 دی 1389, 11:15 صبح
سلام مجدد
دوستان کسی نیست بتونه کمک کنه ؟

mohsen24000
جمعه 17 دی 1389, 11:39 صبح
میخواستم ببینم کسی میتونه با کمک این هک یه query بنویسه که بشه تو وب سایتم که جدا از ویبولتین هست اعضای انلاین رو نشون بدم ؟

کوئری مهم نیست، مهم اینه که شما اول باید ببینید اطلاعات کاربرهاتون رو در سایتی که دارید در چه table هایی ایجاد میکنید و اینکه وقتی online میشن چه اطلاعاتی و کجا ثبت میشه بعد طبق همون ها شما کوئری میسازید و اطلاعات رو استخراج میکنید...

alasht
جمعه 17 دی 1389, 12:24 عصر
سلام
نه ویبولتین به این راحتیا نیست کوئری نوشتن
اطلاعات کاربرانی که وارد سایت میشم در تیبل session ذخیره میشه
من هیچ وقت نتونستم اطلاعات رو به صورت صحیح دربیازم