function SetCookieLog($StartNewNode = true, $SetLogId = false) { global $nsUser, $_COOKIE; global $_NS_TRACK_VARS; $Db =& $_NS_TRACK_VARS['Db']; $LogId =& $_NS_TRACK_VARS['LogId']; $StId =& $_NS_TRACK_VARS['StId']; $CompanyId =& $_NS_TRACK_VARS['CompanyId']; $FindLastNode =& $_NS_TRACK_VARS['FindLastNode']; $CookieStr = NS_TRACK_MISC::ValidVar($_COOKIE[NS_COOKIE_PFX . 'log']) ? $_COOKIE[NS_COOKIE_PFX . 'log'] : false; if ($CookieStr) { $CookieStr = @urldecode($CookieStr); $CookieStr = @stripslashes($CookieStr); $CookieArr = @unserialize($CookieStr); if (!NS_TRACK_MISC::ValidArr($CookieArr)) { $CookieArr = array(); } } else { $CookieArr = array(); } $CookieArr[$StId] = $SetLogId ? $SetLogId : $LogId; $CookieStr = serialize($CookieArr); $Domain = false; if (defined("COOKIE_DOMAIN")) { $Domain = COOKIE_DOMAIN; } if (isset($_NS_TRACK_VARS['COOKIE_DOMAIN'])) { $Domain = $_NS_TRACK_VARS['COOKIE_DOMAIN']; } NS_TRACK_GENERAL::TrackingCookie(NS_COOKIE_PFX . "log", $CookieStr, time() + 60 * 60 * 24 * 10 * 365, "/", $Domain); $FindLastNode = false; Header("x-Set-Coookie-Log: yes"); if (!$StartNewNode && $SetLogId) { $Query = "UPDATE " . NS_DB_PFX . "_tracker_" . $CompanyId . "_stat_log SET COOKIE_LOG={$SetLogId} WHERE ID={$LogId}"; $Db->Query($Query); Header("x-LogUpdated: {$Query}"); } if (!$StartNewNode) { return; } $Db->Query("UPDATE " . NS_DB_PFX . "_tracker_" . $CompanyId . "_stat_log SET COOKIE_LOG={$LogId} WHERE ID={$LogId}"); }
$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();
} if (!$CodeAction) { if (NS_TRACK_ACTION::CompareTemplate($Qr, $Event->QUERY)) { $TplGet = NS_TRACK_QUERY::ParseTemplate($Event->QUERY); $NewQr = ""; if (NS_TRACK_MISC::ValidArr($TplGet)) { foreach ($TplGet as $Key => $Value) { $NewQr .= $Key . "="; if ($Value != "*") { $NewQr .= $Value . "&"; } else { $NewQr .= $_GP[$Key] . "&"; } } } if (NS_TRACK_MISC::ValidArr($CurGet)) { foreach ($CurGet as $Key => $Value) { if (!isset($TplGet[$Key])) { $NewQr .= "{$Key}={$Value}&"; } } } if ($NewQr) { $NewQr = substr($NewQr, 0, -1); } $PageId = $Event->PAGE_ID; $Query = "SELECT * FROM " . NS_DB_PFX . "_tracker_site_page WHERE ID = " . $Event->PAGE_ID; $Page = $Db->Select($Query); $CompanyId = $Site->COMPANY_ID; $HostsArr = NS_TRACK_GENERAL::GetSiteHosts($StId, $Site); if ($Event->SITE_HOST_ID) {