$lines = array(); //获取最新信息 $getmsgs = $DB->query("SELECT msg, biu, color FROM " . TABLE_PREFIX . "msg WHERE toid = '{$gid}' AND type = 1 AND fromid ='{$uid}' AND (created + minitime) > {$ajax_last} ORDER BY msgid ASC"); while ($msg = $DB->fetch($getmsgs)) { $lines[] = WeLive(1, html($msg['msg']), 2, $msg['biu'], $msg['color']); } $sql = "SELECT u.userid, u.activated, u.isonline AS uisonline, g.guestid, g.isonline AS gisonline, g.isbanned FROM " . TABLE_PREFIX . "user u\r\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "guest g ON g.serverid = u.userid AND g.guestid = '{$gid}'\r\n\t\t\tWHERE u.userid = '{$uid}'\r\n\t\t\tAND u.usergroupid <> 1"; $uginfo = $DB->getOne($sql); //验证客服和访客的状态 if (!$uginfo['userid'] or !$uginfo['activated'] or !$uginfo['uisonline']) { $lines[] = 'offline'; } elseif (!$uginfo['guestid']) { $lines[] = 'kickout'; } elseif ($uginfo['isbanned']) { $lines[] = 'banned'; } elseif ($uginfo['guestid'] and $act == 'sending') { //发表信息 $ajaxline = ForceIncomingString('ajaxline'); $ajaxbiu = ForceIncomingString('ajaxbiu', '000'); $ajaxcolor = ForceIncomingString('ajaxcolor', '0'); $DB->exe("INSERT INTO " . TABLE_PREFIX . "msg (fromid, toid, msg, biu, color, created, minitime, type) VALUES ('{$gid}', '{$uid}', '{$ajaxline}', '{$ajaxbiu}', '{$ajaxcolor}', '{$realtime}', '{$minitime}', 0)"); $lines[] = WeLive(2, html($ajaxline), 2, $ajaxbiu, $ajaxcolor); } if (!$uginfo['gisonline'] and $uginfo['guestid']) { //客人如果不在线, 更新为在线状态 $DB->exe("UPDATE " . TABLE_PREFIX . "guest SET isonline = 1, created = '{$realtime}' WHERE guestid = '{$gid}'"); } WeLiveSend($realtime + $minitime, $lines, $ajax_last, $DB->errno); ?>
die('Hacking!'); } elseif (ForceIncomingCookie('weliveU' . COOKIE_KEY) != md5(WEBSITE_KEY . $uid . $_CFG['cKillRobotCode'])) { setcookie('weliveU' . COOKIE_KEY, '', 0, '/'); die('Hacking!'); } $mktime = explode(' ', microtime()); $realtime = $mktime[1]; $minitime = $mktime[0]; $lastlogin = Iif($lastlogin, $lastlogin - 3600, $realtime - 3600 * 12); $guests = ''; $msgs = ''; $getguests = $DB->query("SELECT guestid, guestip, browser, lang, isonline, isbanned, fromurl FROM " . TABLE_PREFIX . "guest WHERE serverid = '{$uid}' AND created > {$lastlogin} ORDER BY created ASC"); while ($guest = $DB->fetch($getguests)) { $guests .= $guest['guestid'] . '|||' . $guest['guestip'] . '|||' . $guest['browser'] . '|||' . $guest['lang'] . '|||' . $guest['isonline'] . '|||' . $guest['isbanned'] . '|||' . $guest['fromurl'] . '^^^'; } $getmsgs = $DB->query("SELECT fromid, msg, biu, color FROM " . TABLE_PREFIX . "msg WHERE toid = '{$uid}' AND type = 0 AND (created + minitime) > {$ajax_last} ORDER BY msgid ASC"); while ($msg = $DB->fetch($getmsgs)) { $msgs .= $msg['fromid'] . '|||2|||' . html($msg['msg']) . '|||2|||' . $msg['biu'] . '|||' . $msg['color'] . '^^^'; } if ($gid and $act == 'sending') { //发表信息 $ajaxline = ForceIncomingString('ajaxline'); $ajaxbiu = ForceIncomingString('ajaxbiu', '000'); $ajaxcolor = ForceIncomingString('ajaxcolor', '0'); $DB->exe("INSERT INTO " . TABLE_PREFIX . "msg (fromid, toid, msg, biu, color, created, minitime, type) VALUES ('{$uid}', '{$gid}', '{$ajaxline}', '{$ajaxbiu}', '{$ajaxcolor}', '{$realtime}', '{$minitime}', 1)"); $msgs .= $gid . '|||1|||' . html($ajaxline) . '|||2|||' . $ajaxbiu . '|||' . $ajaxcolor . '^^^'; } WeLiveSend($realtime + $minitime, $guests, $msgs, $ajax_last, $DB->errno); ?>