function buildTracking() { global $VISITOR, $CONFIG, $DATASETS; $VISITOR = array(); $outdatedVisitors = array(); $itarray = array_keys($DATASETS); foreach ($itarray as $file) { $dataset = $DATASETS[$file]; if (strpos($file, PATH_DATA_EXTERNAL) !== false && substr($file, 0, strlen(PATH_DATA_EXTERNAL)) == PATH_DATA_EXTERNAL) { $userid = substr(str_replace(PATH_DATA_EXTERNAL, "", $file), 0, USER_ID_LENGTH); $browsers = getDirectory(PATH_DATA_EXTERNAL . $userid . "/b/", "."); if (count($browsers) > 0) { foreach ($browsers as $browserid) { $browser = new ExternalBrowser($browserid, $userid); $chat = new ExternalChat($userid, $browserid); if (!isset($VISITOR[$userid])) { $VISITOR[$userid] = new UserExternal($userid); } if (($bStime = getDataSetTime($browser->SessionFile)) != -1) { if ($bStime < time() - $CONFIG["timeout_track"]) { $browser->Destroy(); continue; } $VISITOR[$userid]->Browsers[$browserid] = $browser; } else { if (($cStime = getDataSetTime($chat->SessionFile)) != -1) { $chat->Load(); if ($cStime < time() - $CONFIG["timeout_clients"]) { $chat->Destroy(); continue; } if (isnull($chat->FirstActive)) { $chat->FirstActive = time(); } $chat->History[0] = array($chat->FirstActive, LIVEZILLA_URL . FILE_CHAT, $chat->Code, true); $VISITOR[$userid]->Browsers[$browserid] = $chat; } else { $browser->Destroy(); $chat->Destroy(); } } } } else { $outdatedVisitors[] = $userid; } } } foreach ($outdatedVisitors as $folder) { deleteDirectory(PATH_DATA_EXTERNAL . $folder); } }
define("IS_FILTERED", $FILTERS->Match(getIP(), formLanguages(!isnull(getServerParam("HTTP_ACCEPT_LANGUAGE")) ? getServerParam("HTTP_ACCEPT_LANGUAGE") : ""), CALLER_USER_ID)); define("IS_FLOOD", !dataSetExists($BROWSER->SessionFile) && isFlood()); if (!getAvailability() || IS_FILTERED || IS_FLOOD) { $BROWSER->Destroy(); exit("lz_tracking_stop_tracking();"); } if (dataSetExists($BROWSER->SessionFile)) { $BROWSER->Load(); } $count = count($BROWSER->History); if (!dataSetExists($externalUser->ExternalStatic->SessionFile)) { createStaticFile($externalUser, array(@$_GET[GET_TRACK_RESOLUTION_WIDTH], @$_GET[GET_TRACK_RESOLUTION_HEIGHT]), @$_GET[GET_TRACK_COLOR_DEPTH], @$_GET[GET_TRACK_TIMEZONE_OFFSET], @$_GET[GEO_LATITUDE], @$_GET[GEO_LONGITUDE], @$_GET[GEO_COUNTRY_ISO_2], @$_GET[GEO_CITY], @$_GET[GEO_REGION], @$_GET[GEO_TIMEZONE], @$_GET[GEO_ISP], @$_GET[GEO_SSPAN], @$_GET[GEO_RESULT_ID]); } if (isset($_GET[GET_TRACK_CLOSE_CHAT_WINDOW])) { $chat = new ExternalChat($externalUser->UserId, $_GET[GET_TRACK_CLOSE_CHAT_WINDOW]); $chat->Load(); $chat->Destroy(); } $TRACKINGSCRIPT .= processActions($BROWSER); $TRACKINGSCRIPT .= "lz_tracking_callback(" . $CONFIG["poll_frequency_tracking"] . ",'" . $_GET[GET_TRACK_START] . "');"; $BROWSER->LastActive = time(); if (isnull($BROWSER->FirstActive)) { $BROWSER->FirstActive = time(); } $BROWSER->Referrer = !isset($BROWSER->Referrer) ? isset($_GET[GET_TRACK_REFERRER]) ? trim(slashesStrip(base64UrlDecode($_GET[GET_TRACK_REFERRER]))) : "" : $BROWSER->Referrer; $url = isset($_GET[GET_TRACK_URL]) ? substr(base64UrlDecode($_GET[GET_TRACK_URL]), 0, 1024) : ""; if (!isset($BROWSER->History)) { $BROWSER->History = array(); } if (count($BROWSER->History) == 0 || count($BROWSER->History) > 0 && $BROWSER->History[count($BROWSER->History) - 1][1] != $url) { $BROWSER->History[] = array(time(), $url, isset($_GET[GET_TRACK_SPECIAL_AREA_CODE]) ? base64UrlDecode($_GET[GET_TRACK_SPECIAL_AREA_CODE]) : "", false, base64UrlDecode(@$_GET[GET_EXTERN_DOCUMENT_TITLE]));
if (isset($_GET[GET_EXTERN_USER_HEADER]) && !isnull($_GET[GET_EXTERN_USER_HEADER])) { $html = str_replace("<!--logo-->", "<img src=\"" . base64UrlDecode($_GET[GET_EXTERN_USER_HEADER]) . "\" alt=\"\" border=\"0\"><br>", $html); } else { $html = str_replace("<!--logo-->", file_exists(FILE_CARRIERLOGO) ? "<img src=\"" . FILE_CARRIERLOGO . "\" alt=\"\" border=\"0\"><br>" : "", $html); } } else { if (isset($_GET[GET_EXTERN_TEMPLATE]) && $_GET[GET_EXTERN_TEMPLATE] == "lz_chat_frame.3.2.chat.0.0") { $html = getFile(PATH_FRAMES . $_GET[GET_EXTERN_TEMPLATE] . ".tpl"); $html = str_replace("<!--FU_HIDDEN-->", !$CONFIG["gl_ex_fu"] ? " style=\"display:none;\"" : "", $html); } else { if (isset($_GET[GET_EXTERN_TEMPLATE]) && $_GET[GET_EXTERN_TEMPLATE] == "lz_chat_frame.3.2.chat.1.0") { $html = getFile(PATH_FRAMES . $_GET[GET_EXTERN_TEMPLATE] . ".tpl"); if (isset($_POST[POST_EXTERN_USER_USERID])) { $externalUser = new UserExternal($_POST[POST_EXTERN_USER_USERID]); $externalChat = new ExternalChat($externalUser->UserId, $_POST[POST_EXTERN_USER_BROWSERID]); $externalChat->Load(); if (isset($_FILES["userfile"]) && $externalUser->StoreFile($_POST[POST_EXTERN_USER_BROWSERID], $externalChat->DesiredChatPartner, $externalChat->Fullname)) { $html = str_replace("<!--response-->", "top.lz_chat_file_ready();", $html); } else { if (isset($_FILES['userfile'])) { $html = str_replace("<!--response-->", "top.lz_chat_file_error(2);", $html); } else { $html = str_replace("<!--response-->", "", $html); } } } else { if (isset($_GET["file"])) { $html = str_replace("<!--response-->", "top.lz_chat_file_error(2);", $html); } else { $html = str_replace("<!--response-->", "", $html); }