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 RefSetProcess($RefArr, $RefId = false, $HostObj = false) { //global $Db, $StId, $Skip, $NaturalKey, $HostsArr, $CookieLogSet, $UpdateVisPath; global $_NS_TRACK_VARS; $Db =& $_NS_TRACK_VARS['Db']; $StId =& $_NS_TRACK_VARS['StId']; $Skip =& $_NS_TRACK_VARS['Skip']; $NaturalKey =& $_NS_TRACK_VARS['NaturalKey']; $HostsArr =& $_NS_TRACK_VARS['HostsArr']; $CookieLogSet =& $_NS_TRACK_VARS['CookieLogSet']; $UpdateVisPath =& $_NS_TRACK_VARS['UpdateVisPath']; $QrArr = NS_TRACK_QUERY::ParseTemplate(NS_TRACK_MISC::ValidVar($RefArr['query'])); if (NS_TRACK_MISC::ValidVar($HostObj->KEY_VAR) && isset($QrArr[$HostObj->KEY_VAR])) { $Key = NS_TRACK_MISC::ToLower(urldecode(urldecode($QrArr[$HostObj->KEY_VAR]))); $Key = NS_TRACK_REFERER::ReplacePunkt($Key); $Key = preg_replace("/\\s+/", " ", $Key); $Key = trim($Key); $KeyId = NS_TRACK_REFERER::GetKeywordId($Key); } else { $KeyId = 0; } $NaturalKey = $KeyId; $Query = "INSERT INTO " . NS_DB_PFX . "_tracker_referer_set (HOST_ID, NATURAL_KEY, PROCESSED, REFERER_ID) VALUES (" . $HostObj->ID . ", {$KeyId}, '1', {$RefId})"; $Db->Query($Query); return $Db->LastInsertId; }
return NS_TRACK_GENERAL::FinishTracking(); } if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } $GetVars = NS_TRACK_QUERY::ParseTemplate(NS_TRACK_MISC::ValidVar($CurrentPageArr['query'])); $Skip = NS_TRACK_MISC::ValidId($GetVars['ns_skip']) ? true : false; if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } $ClickSubId = NS_TRACK_MISC::ValidId($GetVars[$VarCamp]) ? $GetVars[$VarCamp] : 0; if (!$ClickSubId) { $ClickSubId = NS_TRACK_CAMPAIGN::GetCampaignBySrc(NS_TRACK_MISC::ValidVar($GetVars[$VarCampSource])); } $KeyId = NS_TRACK_MISC::ValidId($GetVars[$VarKeyword]) ? $GetVars[$VarKeyword] : 0; $Keyword = NS_TRACK_MISC::ValidVar($GetVars[$VarKw]) ? $GetVars[$VarKw] : false; if ($Keyword) { $KeyId = NS_TRACK_REFERER::GetKeywordId($Keyword); } $RefSet = NS_TRACK_REFERER::GetRefererSet($RefPageArr, $Ref); $QueryId = NS_TRACK_QUERY::GetQueryId($CurrentPageArr['query']); $Actions = NS_TRACK_ACTION::GetActionIds($PageId, $CurrentPageArr); if (!$KeepNoRef && $RefSet == 0 && !NS_TRACK_MISC::ValidId($_COOKIE['ns_log']) && $ClickSubId != 0) { $Skip = true; } if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } if ($NoDblPageLoad) { NS_TRACK_GENERAL::CheckPathDblClick(); }
$Current = false; if (NS_TRACK_MISC::ValidVar($_SERVER['HTTP_REFERER'])) { $Current = $_SERVER['HTTP_REFERER']; } if (NS_TRACK_MISC::ValidVar($Cur)) { $Current = $Cur; } $StId = NS_TRACK_MISC::ValidId($_GP['st']) ? $_GP['st'] : false; $Cost = NS_TRACK_MISC::ValidVar($_GP['cs'], 0); $CustomId = NS_TRACK_MISC::ValidVar($_GP['oid']); $AddInfo = NS_TRACK_MISC::ValidVar($_GP['oinfo']); $Site = $Db->Select("SELECT * FROM " . NS_DB_PFX . "_tracker_site WHERE ID = {$StId}"); $CompanyId = $Site->COMPANY_ID; $Settings = NS_TRACK_MISC::GetSettings($CompanyId, $StId); $VisId = NS_TRACK_VISITOR::GetVisitorId(); if (NS_TRACK_MISC::ValidVar($_COOKIE['ns_skip'])) { $Skip = true; } if ($Skip || !NS_TRACK_MISC::ValidId($StId)) { return NS_TRACK_GENERAL::FinishTracking(); } $KeepNoRef = NS_TRACK_MISC::SetsByPrior($Settings, "KEEP_NO_REF"); $NoDblSale = NS_TRACK_MISC::SetsByPrior($Settings, "STOP_DBL_SALE"); $TimeDblSale = NS_TRACK_MISC::TimeDblSettings($Settings, "STOP_DBL_SALE", "TIME_DBL_SALE"); if (!$KeepNoRef && !NS_TRACK_MISC::ValidId($_COOKIE['ns_log'])) { $Skip = true; } if ($Skip) { return NS_TRACK_GENERAL::FinishTracking(); } $HostsArr = NS_TRACK_GENERAL::GetSiteHosts($StId, $Site);
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; }
} $PageId = NS_TRACK_PAGE::GetPageId($CurrentPageArr, $StId); if ($Undef && $KeepVisPath) { NS_TRACK_GENERAL::UpdateStatUndef(); NS_TRACK_MISC::Redir($RUrl); } if ($Skip) { Redir($RUrl); } $GetVars = NS_TRACK_QUERY::ParseTemplate(NS_TRACK_MISC::ValidVar($CurrentPageArr['query'])); $Skip = NS_TRACK_MISC::ValidId($GetVars['ns_skip']) ? true : false; if ($Skip) { NS_TRACK_MISC::Redir($RUrl); } $KeyId = NS_TRACK_MISC::ValidId($_GP[$VarKeyword]) ? $_GP[$VarKeyword] : 0; $Keyword = NS_TRACK_MISC::ValidVar($_GP[$VarKw], false); if ($Keyword) { $KeyId = NS_TRACK_REFERER::GetKeywordId($Keyword); } $RefSet = NS_TRACK_REFERER::GetRefererSet($RefPageArr, $Ref); $QueryId = NS_TRACK_QUERY::GetQueryId($CurrentPageArr['query']); if (!$KeepNoRef && $RefSet == 0 && !NS_TRACK_MISC::ValidId($_COOKIE['ns_log']) && $ClickSubId != 0) { $Skip = true; } if ($Skip) { NS_TRACK_MISC::Redir($RUrl); } if ($NoDblPageLoad) { NS_TRACK_GENERAL::CheckPathDblClick(); } if ($NoDblAdvClick) {
} $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']; } }
$SiteHostId = NS_TRACK_GENERAL::CurrentSiteHost($HostsArr, $CurrentPageArr); if (!$SiteHostId) { $Skip = true; } if ($Skip) { NS_TRACK_MISC::Redir($Redir); } $RefSet = NS_TRACK_REFERER::GetRefererSet($RefPageArr, $Ref); if (!$KeepNoRef && $RefSet == 0 && !NS_TRACK_MISC::ValidId($_COOKIE[NS_COOKIE_PFX . 'log']) && $ClickSubId != 0) { $Skip = true; } 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();
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']);