function GetPageId($PathArr = false, $StId = false) { if (!$PathArr || !$StId) { return 0; } global $_NS_TRACK_VARS; $Skip =& $_NS_TRACK_VARS['Skip']; $Db =& $_NS_TRACK_VARS['Db']; $Undef =& $_NS_TRACK_VARS['Undef']; $Site =& $_NS_TRACK_VARS['Site']; $HostsArr =& $_NS_TRACK_VARS['HostsArr']; $SSL =& $_NS_TRACK_VARS['SSL']; if (!isset($HostsArr[NS_TRACK_MISC::ToLower($PathArr['host'])])) { $Undef = true; $Skip = true; return 0; } if (NS_TRACK_MISC::ValidVar($PathArr['scheme']) == "https") { $SSL = true; } $Path = $PathArr['path']; $Query = "SELECT ID, IGNORE_PAGE FROM " . NS_DB_PFX . "_tracker_site_page WHERE PATH = '{$Path}' AND SITE_ID={$StId}"; $Check = $Db->Select($Query); if (isset($Check->IGNORE_PAGE) && $Check->IGNORE_PAGE) { $Skip = true; $Undef = true; return 0; } if (NS_TRACK_MISC::ValidId($Check->ID)) { return $Check->ID; } $Query = "INSERT INTO " . NS_DB_PFX . "_tracker_site_page (SITE_ID, PATH) VALUES ({$StId}, '{$Path}')"; $Db->Query($Query); return $Db->LastInsertId; }
function GetQueryId($Qr = false) { if (!$Qr) { return 0; } global $_NS_TRACK_VARS; $Db =& $_NS_TRACK_VARS['Db']; $Qr = NS_TRACK_MISC::escape_string($Qr); $Query = "SELECT ID FROM " . NS_DB_PFX . "_tracker_query WHERE MD5_SEARCH=MD5('{$Qr}')"; $CheckId = $Db->ReturnValue($Query); if (NS_TRACK_MISC::ValidId($CheckId)) { return $CheckId; } $Query = "INSERT INTO " . NS_DB_PFX . "_tracker_query (QUERY_STRING, MD5_SEARCH) VALUES ('{$Qr}', MD5('{$Qr}'))"; $Db->Query($Query); return NS_TRACK_MISC::ValidId($Db->LastInsertId) ? $Db->LastInsertId : 0; }
function GetSaleItem($ItemName = false, $CompanyId = false) { if (!$ItemName || !$CompanyId) { return 0; } global $Db; global $_NS_TRACK_VARS; $Db =& $_NS_TRACK_VARS['Db']; $ItemName = addslashes($ItemName); $Query = "SELECT ID FROM " . NS_DB_PFX . "_tracker_sale_item WHERE NAME='{$ItemName}' AND COMPANY_ID={$CompanyId}"; $CheckId = $Db->ReturnValue($Query); if (NS_TRACK_MISC::ValidId($CheckId)) { return $CheckId; } $Query = "INSERT INTO " . NS_DB_PFX . "_tracker_sale_item (COMPANY_ID, NAME) VALUES ({$CompanyId}, '{$ItemName}')"; $Db->Query($Query); return $Db->LastInsertId; }
function GetCampaignBySrc($Src = false) { if (!$Src) { return 0; } global $_NS_TRACK_VARS; $Db =& $_NS_TRACK_VARS['Db']; $CompanyId =& $_NS_TRACK_VARS['CompanyId']; if (!$CompanyId) { return 0; } $Src = NS_TRACK_MISC::escape_string($Src); $Query = "SELECT SUB_ID FROM " . NS_DB_PFX . "_tracker_sub_campaign WHERE SRC_ID='{$Src}'"; $CheckId = $Db->ReturnValue($Query); if ($CheckId) { return $CheckId; } $Query = "INSERT INTO " . NS_DB_PFX . "_tracker_camp_piece (CAMPAIGN_ID, COMPANY_ID, NAME) VALUES (0, {$CompanyId}, '{$Src}')"; $Db->Query($Query); $SubId = $Db->LastInsertId; $Query = "INSERT INTO " . NS_DB_PFX . "_tracker_sub_campaign (SUB_ID, SRC_ID) VALUES ({$SubId}, '{$Src}')"; $Db->Query($Query); return $SubId; }
} if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } $Fraud = NS_TRACK_GENERAL::CheckClickFraud($Settings, $VisId, $ClickSubId); NS_TRACK_GENERAL::UpdateVisitorAction(); if (NS_TRACK_MISC::ValidId($ClickSubId) && $ClickSubId > 0) { NS_TRACK_GENERAL::UpdateVisitorClick(); } if ($UpdateVisPath || $KeepVisPath) { NS_TRACK_GENERAL::UpdateVisitorPath(); } if ($CookieLogSet && NS_TRACK_GENERAL::CheckTrackingMode()) { $CookieLogSet = false; } if ($CookieLogSet) { NS_TRACK_GENERAL::SetCookieLog(); } if ($FindLastNode) { NS_TRACK_VISITOR::FindLastNode($VisId); } NS_TRACK_VISITOR::UpdateByRegs(); if (defined("TRACK_ERRORS") && TRACK_ERRORS && !defined("NS_PHP_TRACKING")) { $ResTime = NS_TRACK_MISC::GetMicrotime() - $StartTime; $Query = "INSERT INTO track_time (TRACK_TIME) VALUES ('{$ResTime}')"; $Db->Query($Query); for ($i = 0; $i < count($Logs->Errors); $i++) { $Db->Query("INSERT INTO track_error (ERROR) VALUES ('" . addslashes($Logs->Errors[$i]) . "')"); } } return NS_TRACK_GENERAL::FinishTracking();
$HostsArr = NS_TRACK_GENERAL::GetSiteHosts($StId, $Site); $CurrentPageArr = NS_TRACK_GENERAL::PreparePathAddr($Current); $SiteHostId = NS_TRACK_GENERAL::CurrentSiteHost($HostsArr, $CurrentPageArr, $Site); if (!$SiteHostId) { $Skip = true; } if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } $RefSet = 0; $QueryId = NS_TRACK_QUERY::GetQueryId($CurrentPageArr['query']); $PageId = NS_TRACK_PAGE::GetPageId($CurrentPageArr, $StId); if ($Undef) { NS_TRACK_GENERAL::UpdateStatUndef(); return NS_TRACK_GENERAL::FinishTracking(); } $Items = NS_TRACK_MISC::ValidArr($_GP['itm']) ? NS_TRACK_SALE::PrepareSaleItems($_GP['itm']) : false; if ($NoDblSale) { NS_TRACK_GENERAL::CheckSaleDblClick(); } if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } NS_TRACK_GENERAL::UpdateVisitorPath(); NS_TRACK_GENERAL::UpdateVisitorSale(); if (defined("TRACK_ERRORS") && TRACK_ERRORS && !defined("NS_PHP_TRACKING")) { for ($i = 0; $i < count($Logs->Errors); $i++) { $Db->Query("INSERT INTO track_error (ERROR) VALUES ('" . addslashes($Logs->Errors[$i]) . "')"); } } return NS_TRACK_GENERAL::FinishTracking();
function CompareStrings($Str = false, $Templ = false) { global $_NS_TRACK_VARS; $Item =& $_NS_TRACK_VARS['Item']; if (!$Templ) { return true; } if ($Templ == "*" || $Templ == "/*") { return true; } if ($Templ == "{a}" || $Templ == "/{a}") { $Item = $Str; return true; } if (!$Str) { return false; } $ItemPosition = false; $Matches = array(); if (strpos($Templ, "{a}") !== false) { $TmpArr = explode("*", substr($Templ, 0, strpos($Templ, "{a}"))); $ItemPosition = count($TmpArr); } $Templ = str_replace("{a}", "*", $Templ); $Arr = explode("*", $Templ); for ($i = 0; $i < count($Arr); $i++) { $Arr[$i] = preg_quote($Arr[$i], "/"); } $Templ2 = implode("(.+)", $Arr); $Result = @preg_match("/{$Templ2}/i", $Str, $Matches); if ($ItemPosition) { $Item = NS_TRACK_MISC::ValidVar($Matches[$ItemPosition]); } return $Result; }
function CheckTrackingMode() { global $_NS_TRACK_VARS, $_COOKIE; $Db =& $_NS_TRACK_VARS['Db']; $Settings =& $_NS_TRACK_VARS['Settings']; $CompanyId =& $_NS_TRACK_VARS['CompanyId']; $StId =& $_NS_TRACK_VARS['StId']; $VisId =& $_NS_TRACK_VARS['VisId']; $ClickSubId =& $_NS_TRACK_VARS['ClickSubId']; $TM = $Settings['All']->TRACKING_MODE; if (!$TM) { return false; } $Mode = ""; $PaidPoint = ""; $NaturalPoint = ""; $NonePoint = ""; $PriorArr = explode("|", $TM); $Mode = NS_TRACK_MISC::ValidVar($PriorArr[0], "NONE"); if (NS_TRACK_MISC::ValidVar($PriorArr[1])) { $EntryArr = explode(";", $PriorArr[1]); for ($i = 0; $i < count($EntryArr); $i++) { $TmpArr = explode(":", $EntryArr[$i]); if (NS_TRACK_MISC::ValidVar($TmpArr[0]) == "NONE") { $NonePoint = NS_TRACK_MISC::ValidVar($TmpArr[1], "LAST"); } if (NS_TRACK_MISC::ValidVar($TmpArr[0]) == "PAID") { $PaidPoint = NS_TRACK_MISC::ValidVar($TmpArr[1], "LAST"); } if (NS_TRACK_MISC::ValidVar($TmpArr[0]) == "NATURAL") { $NaturalPoint = NS_TRACK_MISC::ValidVar($TmpArr[1], "LAST"); } } } $RequestedMode = $ClickSubId ? "PAID" : "NATURAL"; if ($Mode == "NONE" && $NonePoint == "LAST") { return false; } if ($Mode == "PAID" && $PaidPoint == "LAST" && $ClickSubId) { return false; } if ($Mode == "NATURAL" && $NaturalPoint == "LAST" && !$ClickSubId) { return false; } if ($Mode == "NONE" && $NonePoint == "FIRST") { $NodeId = NS_TRACK_GENERAL::FindSomeNode("ANY", "FIRST"); if ($NodeId) { return NS_TRACK_GENERAL::UpdateCookieLog($NodeId); } return false; } $NodeId = NS_TRACK_GENERAL::FindSomeNode($Mode, "FIRST"); if ($NodeId) { return NS_TRACK_GENERAL::UpdateCookieLog($NodeId); } if ($Mode == $RequestedMode) { return false; } $NodeId = NS_TRACK_GENERAL::FindSomeNode($Mode == "PAID" ? "NATURAL" : "PAID", $Mode == "PAID" ? $NaturalPoint : $PaidPoint); if ($NodeId) { return NS_TRACK_GENERAL::UpdateCookieLog($NodeId); } return false; }
NS_TRACK_MISC::Redir($RUrl); } $Fraud = NS_TRACK_GENERAL::CheckClickFraud($Settings, $VisId, $ClickSubId); if (NS_TRACK_MISC::ValidId($ClickSubId) && $ClickSubId > 0) { NS_TRACK_GENERAL::UpdateVisitorClick(); } if ($UpdateVisPath || $KeepVisPath) { NS_TRACK_GENERAL::UpdateVisitorPath(); } $nsUser->SetCookie(NS_COOKIE_PFX . 'tmp_skip', '1', 120, '/'); if ($CookieLogSet && NS_TRACK_GENERAL::CheckTrackingMode()) { $CookieLogSet = false; } if ($CookieLogSet) { NS_TRACK_GENERAL::SetCookieLog(); } if ($FindLastNode) { NS_TRACK_VISITOR::FindLastNode($VisId); } if (defined("TRACK_ERRORS") && TRACK_ERRORS && !defined("NS_PHP_TRACKING")) { $ResTime = NS_TRACK_MISC::GetMicrotime() - $StartTime; $Query = "INSERT INTO track_time (TRACK_TIME) VALUES ('{$ResTime}')"; $Db->Query($Query); for ($i = 0; $i < count($Logs->Errors); $i++) { $Db->Query("INSERT INTO track_error (ERROR) VALUES ('" . addslashes($Logs->Errors[$i]) . "')"); } } //if ($CurrentPageArr['query']) $RUrl.="&ns_skip=1"; //else $RUrl.="?ns_skip=1"; NS_TRACK_MISC::Redir($RUrl);
} $CurrentPageArr = NS_TRACK_GENERAL::PreparePathAddr($Current); if (!$CurrentPageArr) { return NS_TRACK_GENERAL::FinishTracking(); } $RefPageArr = array(); $HostsArr = NS_TRACK_GENERAL::GetSiteHosts($StId, $Site); $SiteHostId = NS_TRACK_GENERAL::CurrentSiteHost($HostsArr, $CurrentPageArr, $Site); if (!$SiteHostId) { $Skip = true; } if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } $PageId = NS_TRACK_PAGE::GetPageId($CurrentPageArr, $StId); $RefSet = 0; $QueryId = NS_TRACK_QUERY::GetQueryId($CurrentPageArr['query']); $Actions[$eid]['Id'] = $eid; $Actions[$eid]['Item'] = $Item; //Dump($GLOBALS); NS_TRACK_GENERAL::UpdateVisitorPath(); NS_TRACK_GENERAL::UpdateVisitorAction(); return NS_TRACK_GENERAL::FinishTracking(); } if (!$CodeAction) { if (NS_TRACK_MISC::ValidVar($rurl)) { NS_TRACK_MISC::Redir($rurl); } else { NS_TRACK_MISC::Redir($Current); } }
function GetUserIp() { global $_NS_TRACK_VARS; $PresetIP =& $_NS_TRACK_VARS['PresetIP']; if (NS_TRACK_MISC::ValidVar($PresetIP) && NS_TRACK_MISC::ValidIp($PresetIP)) { return $PresetIP; } $UserIp = false; if (NS_TRACK_MISC::ValidVar($_SERVER['HTTP_X_FORWARDED_FOR'])) { $UserIp = $_SERVER['HTTP_X_FORWARDED_FOR']; if (strpos($UserIp, ",") !== false) { $Arr = explode(",", $UserIp); $UserIp = $Arr[0]; } } if (NS_TRACK_MISC::ValidIp($UserIp)) { return $UserIp; } else { return $_SERVER['REMOTE_ADDR']; } }
} if ($Skip) { NS_TRACK_MISC::Redir($Redir); } $Actions = NS_TRACK_ACTION::GetActionIds($PageId, $CurrentPageArr); $QueryId = NS_TRACK_QUERY::GetQueryId(NS_TRACK_MISC::ValidVar($CurrentPageArr['query'])); if ($NoDblPageLoad) { NS_TRACK_GENERAL::CheckPathDblClick(); } if ($NoDblAdvClick) { NS_TRACK_GENERAL::CheckAdvDblClick(); } if ($Skip) { NS_TRACK_MISC::Redir($Redir); } $Fraud = NS_TRACK_GENERAL::CheckClickFraud($Settings, $VisId, $ClickSubId); NS_TRACK_GENERAL::UpdateVisitorPath(); $nsUser->SetCookie(NS_COOKIE_PFX . 'tmp_skip', '1', time() + 120, '/', $_NS_TRACK_VARS['COOKIE_DOMAIN']); NS_TRACK_GENERAL::UpdateVisitorAction(); if (NS_TRACK_MISC::ValidId($ClickSubId) && $ClickSubId > 0) { NS_TRACK_GENERAL::UpdateVisitorClick(); } NS_TRACK_GENERAL::UpdateVisitorSplit($SplitCamp); if ($RememberPage) { $Arr["split{$SplitId}" . "_page"] = $Page->PAGE_ID; $Arr["split{$SplitId}" . "_query"] = $Page->QUERY_ID; NS_TRACK_MISC::CookieStorageSet($Arr, false, time() + 60 * 60 * 24 * 365 * 10, '/'); } NS_TRACK_GENERAL::SetCookieLog(); NS_TRACK_MISC::Redir($Redir);
function GetKeywordId($Key = false) { if (!$Key) { return 0; } global $_NS_TRACK_VARS; $Db =& $_NS_TRACK_VARS['Db']; $Key = NS_TRACK_MISC::escape_string($Key); $Query = "SELECT ID FROM " . NS_DB_PFX . "_tracker_keyword WHERE MD5_SEARCH=MD5('{$Key}')"; $CheckId = $Db->ReturnValue($Query); if (NS_TRACK_MISC::ValidId($CheckId)) { return $CheckId; } $Query = "INSERT INTO " . NS_DB_PFX . "_tracker_keyword (KEYWORD, MD5_SEARCH) VALUES ('{$Key}', MD5('{$Key}'))"; $Db->Query($Query); return $Db->LastInsertId; }
function CookieStorageGet($Name = false) { if (!$Name) { return false; } global $_COOKIE; $CookieArr = NS_TRACK_MISC::ValidVar($_COOKIE[COOKIE_PFX . 'storage']); if (!NS_TRACK_MISC::ValidVar($CookieArr)) { return false; } else { $CookieArr = @unserialize($CookieArr); } return NS_TRACK_MISC::ValidVar($CookieArr[$Name]); }
$VisId =& $_NS_TRACK_VARS['VisId']; $LogId =& $_NS_TRACK_VARS['LogId']; $PageId =& $_NS_TRACK_VARS['PageId']; $QueryId =& $_NS_TRACK_VARS['QueryId']; $Current =& $_NS_TRACK_VARS['Current']; $CookieLogSet =& $_NS_TRACK_VARS['CookieLogSet']; $IpId = $IpId =& $_NS_TRACK_VARS['IpId']; $AgentId =& $_NS_TRACK_VARS['AgentId']; $Settings =& $_NS_TRACK_VARS['Settings']; $CheckCookieId =& $_NS_TRACK_VARS['CheckCookieId']; $UpdateVisPath =& $_NS_TRACK_VARS['UpdateVisPath']; $HostsArr =& $_NS_TRACK_VARS['HostsArr']; $RefHostId =& $_NS_TRACK_VARS['RefHostId']; $SourceId =& $_NS_TRACK_VARS['SourceId']; $KeyId =& $_NS_TRACK_VARS['KeyId']; $RefSet =& $_NS_TRACK_VARS['RefSet']; $NaturalKey =& $_NS_TRACK_VARS['NaturalKey']; $SiteHostId =& $_NS_TRACK_VARS['SiteHostId']; $SSL =& $_NS_TRACK_VARS['SSL']; $Site =& $_NS_TRACK_VARS['Site']; $ClickSubId =& $_NS_TRACK_VARS['ClickSubId']; $ScrRes =& $_NS_TRACK_VARS['ScrRes']; $PxD =& $_NS_TRACK_VARS['PxD']; $FlVer =& $_NS_TRACK_VARS['FlVer']; $Frame =& $_NS_TRACK_VARS['Frame']; $FindLastNode =& $_NS_TRACK_VARS['FindLastNode']; $PresetIP =& $_NS_TRACK_VARS['PresetIP']; $PresetID =& $_NS_TRACK_VARS['PresetID']; $PresetIP = NS_TRACK_MISC::ValidVar($_GP['presetIP']); $PresetID = NS_TRACK_MISC::ValidVar($_GP['presetID']);