114 global
$USER,
$APPLICATION, $STOP_SAVE_STATISTIC, $STOP_MESSAGE, $STOP_REDIRECT_URL, $STOP, $STOP_LIST_ID, $STOP_MESSAGE_LID;
115 $DB = CDatabase::GetModuleConnection(
'statistic');
118 if (defined(
"ADMIN_SECTION") &&
ADMIN_SECTION===
true) $sql_site =
"null";
119 elseif (defined(
"SITE_ID"))
121 $sql_site =
"'".$DB->ForSql(
SITE_ID,2).
"'";
124 else $sql_site =
"null";
126 $ADV_NA = COption::GetOptionString(
"statistic",
"ADV_NA");
131 $SAVE_HITS = (COption::GetOptionString(
"statistic",
"SAVE_HITS")==
"N") ?
"N" :
"Y";
132 $SAVE_VISITS = (COption::GetOptionString(
"statistic",
"SAVE_VISITS")==
"N") ?
"N" :
"Y";
133 $SAVE_REFERERS = (COption::GetOptionString(
"statistic",
"SAVE_REFERERS")==
"N") ?
"N" :
"Y";
134 $SAVE_PATH_DATA = (COption::GetOptionString(
"statistic",
"SAVE_PATH_DATA")==
"N") ?
"N" :
"Y";
137 $hour = date(
"G", $stmp);
138 $weekday = date(
"w", $stmp);
139 if ($weekday==0) $weekday = 7;
140 $month = date(
"n", $stmp);
142 if ($STOP_SAVE_STATISTIC!=
"N" or $STOP!=
"Y")
144 if (isset($_SESSION[
"SESS_ADD_TO_FAVORITES"]) && $_SESSION[
"SESS_ADD_TO_FAVORITES"]==
"Y")
147 $_SESSION[
"SESS_ADD_TO_FAVORITES"]=
"";
154 $ERROR_404 = (defined(
"ERROR_404") && ERROR_404==
"Y") ?
"Y" :
"N";
155 $DB_now =
$DB->GetNowFunction();
156 $DB_now_date =
$DB->GetNowDate();
157 $STOP_LIST_ID = intval($STOP_LIST_ID);
160 $IS_USER_AUTHORIZED = (isset($_SESSION[
"SESS_LAST_USER_ID"]) && intval($_SESSION[
"SESS_LAST_USER_ID"])>0 && is_object(
$USER) &&
$USER->IsAuthorized()) ?
"Y" :
"N";
192 $BLOCK_ACTIVITY = CStatistics::BlockVisitorActivity();
195 if (!$BLOCK_ACTIVITY)
198 if (isset($_SESSION[
"SESS_SEARCHER_ID"]) && intval($_SESSION[
"SESS_SEARCHER_ID"]) > 0)
203 WHERE ID = '".intval($_SESSION[
"SESS_SEARCHER_ID"]).
"'
205 $z =
$DB->Query($strSql);
207 unset($_SESSION[
"SESS_SEARCHER_ID"]);
211 if(!isset($_SESSION[
"SESS_SEARCHER_ID"]) || $_SESSION[
"SESS_SEARCHER_ID"] ==
'')
216 ID, NAME, SAVE_STATISTIC, HIT_KEEP_DAYS, CHECK_ACTIVITY
221 and ".$DB->Length(
"USER_AGENT").
">0
222 and upper('".
$DB->ForSql(
$_SERVER[
"HTTP_USER_AGENT"] ??
'', 500).
"') like ".
$DB->Concat(
"'%'",
"upper(USER_AGENT)",
"'%'").
"
223 ORDER BY ".
$DB->Length(
"USER_AGENT").
" desc, ID
226 $z =
$DB->Query($strSql);
227 if (
$zr =
$z->Fetch())
229 $_SESSION[
"SESS_SEARCHER_ID"] = intval(
$zr[
"ID"]);
230 $_SESSION[
"SESS_SEARCHER_NAME"] =
$zr[
"NAME"];
231 $_SESSION[
"SESS_SEARCHER_CHECK_ACTIVITY"] =
$zr[
"CHECK_ACTIVITY"];
232 $_SESSION[
"SESS_SEARCHER_SAVE_STATISTIC"] =
$zr[
"SAVE_STATISTIC"];
233 $_SESSION[
"SESS_SEARCHER_HIT_KEEP_DAYS"] =
$zr[
"HIT_KEEP_DAYS"];
237 $_SESSION[
"SESS_SEARCHER_ID"] = intval($_SESSION[
"SESS_SEARCHER_ID"] ?? 0);
245 if (intval($_SESSION[
"SESS_SEARCHER_ID"])>0)
247 $_SESSION[
"SESS_SEARCHER_ID"] = intval($_SESSION[
"SESS_SEARCHER_ID"]);
251 "DATE_LAST" => $DB_now,
252 "TOTAL_HITS" =>
"TOTAL_HITS + 1"
254 $rows =
$DB->Update(
"b_stat_searcher_day",
$arFields,
"WHERE SEARCHER_ID='".$_SESSION[
"SESS_SEARCHER_ID"].
"' and DATE_STAT=".$DB_now_date,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
256 if (intval(
$rows)<=0)
260 "DATE_STAT" => $DB_now_date,
261 "DATE_LAST" => $DB_now,
262 "SEARCHER_ID" => $_SESSION[
"SESS_SEARCHER_ID"],
265 $DB->Insert(
"b_stat_searcher_day",$arFields_i,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
269 $strSql =
"SELECT ID FROM b_stat_searcher_day WHERE SEARCHER_ID='".$_SESSION[
"SESS_SEARCHER_ID"].
"' and DATE_STAT=".$DB_now_date.
" ORDER BY ID";
271 $rs =
$DB->Query($strSql);
272 while (
$ar =
$rs->Fetch())
277 $strSql =
"DELETE FROM b_stat_searcher_day WHERE ID = ".$ar[
"ID"];
284 if ($_SESSION[
"SESS_SEARCHER_SAVE_STATISTIC"]==
"Y")
286 $sql_HIT_KEEP_DAYS = ($_SESSION[
"SESS_SEARCHER_HIT_KEEP_DAYS"] <>
'') ? intval($_SESSION[
"SESS_SEARCHER_HIT_KEEP_DAYS"]) :
"null";
288 "DATE_HIT" => $DB_now,
289 "SEARCHER_ID" => intval($_SESSION[
"SESS_SEARCHER_ID"]),
291 "URL_404" =>
"'".$ERROR_404.
"'",
292 "IP" =>
"'".$DB->ForSql(
$_SERVER[
"REMOTE_ADDR"],15).
"'",
293 "USER_AGENT" =>
"'".$DB->ForSql(
$_SERVER[
"HTTP_USER_AGENT"],500).
"'",
294 "HIT_KEEP_DAYS" => $sql_HIT_KEEP_DAYS,
295 "SITE_ID" => $sql_site
297 $id =
$DB->Insert(
"b_stat_searcher_hit",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
300 CStatistics::Set404(
"b_stat_searcher_hit",
"ID = ".intval($id),
array(
"URL_404" =>
"Y"));
315 $CURRENT_DIR = __GetCurrentDir();
318 $CURRENT_PROTOCOL = (CMain::IsHTTPS()) ?
"https://" :
"http://";
319 $CURRENT_PORT =
$_SERVER[
"SERVER_PORT"];
320 $CURRENT_HOST =
$_SERVER[
"HTTP_HOST"];
329 if(!isset($_SESSION[
"SESS_COUNTRY_ID"]) || $_SESSION[
"SESS_COUNTRY_ID"] ==
'')
333 $_SESSION[
"SESS_CITY_ID"] = $obCity->GetCityID();
346 CStatistics::Set_Adv();
352 $arGuest = CStatistics::Set_Guest();
355 if ($ADV_NA==
"Y" && intval($_SESSION[
"SESS_ADV_ID"])<=0 && intval($_SESSION[
"SESS_LAST_ADV_ID"])<=0)
357 $_SESSION[
"referer1"] = COption::GetOptionString(
"statistic",
"AVD_NA_REFERER1");
358 $_SESSION[
"referer2"] = COption::GetOptionString(
"statistic",
"AVD_NA_REFERER2");
359 CStatistics::Set_Adv();
360 $arGuest = CStatistics::Set_Guest();
367 $_SESSION[
"SESS_SESSION_ID"] = intval($_SESSION[
"SESS_SESSION_ID"] ?? 0);
370 if($_SESSION[
"SESS_SESSION_ID"] > 0)
375 "USER_ID" => intval($_SESSION[
"SESS_LAST_USER_ID"]),
376 "USER_AUTH" =>
"'".$IS_USER_AUTHORIZED.
"'",
377 "USER_AGENT" =>
"'".$DB->ForSql(
$_SERVER[
"HTTP_USER_AGENT"] ??
'', 500).
"'",
378 "DATE_LAST" => $DB_now,
379 "IP_LAST" =>
"'".$DB->ForSql(
$_SERVER[
"REMOTE_ADDR"],15).
"'",
380 "IP_LAST_NUMBER" => $REMOTE_ADDR_NUMBER,
381 "HITS" =>
"HITS + 1",
383 $rows =
$DB->Update(
"b_stat_session",
$arFields,
"WHERE ID='".$_SESSION[
"SESS_SESSION_ID"].
"'",
"File: ".__FILE__.
"<br>Line: ".__LINE__);
385 if (intval(
$rows)<=0)
388 $_SESSION[
"SESS_SESSION_ID"] = 0;
389 if ($ADV_NA==
"Y" && intval($_SESSION[
"SESS_ADV_ID"])<=0 && intval($_SESSION[
"SESS_LAST_ADV_ID"])<=0)
391 $_SESSION[
"referer1"] = COption::GetOptionString(
"statistic",
"AVD_NA_REFERER1");
392 $_SESSION[
"referer2"] = COption::GetOptionString(
"statistic",
"AVD_NA_REFERER2");
394 CStatistics::Set_Adv();
395 $arGuest = CStatistics::Set_Guest();
400 if($_SESSION[
"SESS_SESSION_ID"] <= 0)
406 "GUEST_ID" => intval($_SESSION[
"SESS_GUEST_ID"]),
407 "NEW_GUEST" =>
"'".
$DB->ForSql($_SESSION[
"SESS_GUEST_NEW"]).
"'",
408 "USER_ID" => intval($_SESSION[
"SESS_LAST_USER_ID"]),
409 "USER_AUTH" =>
"'".
$DB->ForSql($IS_USER_AUTHORIZED).
"'",
410 "URL_FROM" =>
"'".$DB->ForSql(
$_SERVER[
"HTTP_REFERER"] ??
'', 2000).
"'",
411 "URL_TO" =>
"'".$DB->ForSql($CURRENT_URI,2000).
"'",
412 "URL_TO_404" =>
"'".$DB->ForSql($ERROR_404).
"'",
413 "URL_LAST" =>
"'".$DB->ForSql($CURRENT_URI,2000).
"'",
414 "URL_LAST_404" =>
"'".$DB->ForSql($ERROR_404).
"'",
415 "USER_AGENT" =>
"'".$DB->ForSql(
$_SERVER[
"HTTP_USER_AGENT"] ??
'', 500).
"'",
416 "DATE_STAT" => $DB_now_date,
417 "DATE_FIRST" => $DB_now,
418 "DATE_LAST" => $DB_now,
419 "IP_FIRST" =>
"'".$DB->ForSql(
$_SERVER[
"REMOTE_ADDR"],15).
"'",
420 "IP_FIRST_NUMBER" =>
"'".$DB->ForSql($REMOTE_ADDR_NUMBER).
"'",
421 "IP_LAST" =>
"'".$DB->ForSql(
$_SERVER[
"REMOTE_ADDR"],15).
"'",
422 "IP_LAST_NUMBER" =>
"'".$DB->ForSql($REMOTE_ADDR_NUMBER).
"'",
423 "PHPSESSID" =>
"'".$DB->ForSql($sessionId,255).
"'",
424 "STOP_LIST_ID" =>
"'".$DB->ForSql($STOP_LIST_ID).
"'",
425 "COUNTRY_ID" =>
"'".$DB->ForSql($_SESSION[
"SESS_COUNTRY_ID"],2).
"'",
426 "CITY_ID" => $_SESSION[
"SESS_CITY_ID"] > 0? intval($_SESSION[
"SESS_CITY_ID"]):
"null",
427 "ADV_BACK" =>
"null",
428 "FIRST_SITE_ID" => $sql_site,
429 "LAST_SITE_ID" => $sql_site,
434 if (intval($_SESSION[
"SESS_ADV_ID"])>0)
436 $arFields[
"ADV_ID"] = intval($_SESSION[
"SESS_ADV_ID"]);
438 $arFields[
"REFERER1"] =
"'".$DB->ForSql($_SESSION[
"referer1"],255).
"'";
439 $arFields[
"REFERER2"] =
"'".$DB->ForSql($_SESSION[
"referer2"],255).
"'";
440 $arFields[
"REFERER3"] =
"'".$DB->ForSql($_SESSION[
"referer3"],255).
"'";
442 elseif (intval($_SESSION[
"SESS_LAST_ADV_ID"])>0)
444 $arFields[
"ADV_ID"] = intval($_SESSION[
"SESS_LAST_ADV_ID"]);
446 $arFields[
"REFERER1"] =
"'".$DB->ForSql($arGuest[
"last_referer1"],255).
"'";
447 $arFields[
"REFERER2"] =
"'".$DB->ForSql($arGuest[
"last_referer2"],255).
"'";
451 $day_host_counter = 1;
454 SELECT S.FIRST_SITE_ID
455 FROM b_stat_session S
456 WHERE S.IP_FIRST_NUMBER = ".$REMOTE_ADDR_NUMBER.
"
457 AND S.DATE_STAT=".$DB_now_date.
"
459 $e =
$DB->Query($strSql);
460 while($er = $e->Fetch())
462 $day_host_counter = 0;
465 $day_host_counter_site = 0;
470 $_SESSION[
"SESS_SESSION_ID"] = intval(
$DB->Insert(
"b_stat_session",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__));
474 CStatistics::Set404(
"b_stat_session",
"ID = ".$_SESSION[
"SESS_SESSION_ID"],
array(
"URL_TO_404" =>
"Y",
"URL_LAST_404" =>
"Y"));
477 $day_guest_counter = 0;
478 $new_guest_counter = 0;
480 if ($_SESSION[
"SESS_GUEST_NEW"]==
"Y")
483 $day_guest_counter = 1;
484 $new_guest_counter = 1;
489 if (!isset($_SESSION[
"SESS_LAST"]) || $_SESSION[
"SESS_LAST"] !=
"Y")
492 $day_guest_counter = 1;
493 $_SESSION[
"SESS_LAST"] =
"Y";
500 "C_HOSTS" => intval($day_host_counter),
501 "GUESTS" => intval($day_guest_counter),
502 "NEW_GUESTS" => intval($new_guest_counter),
504 "HOST" => intval($day_host_counter),
505 "GUEST" => intval($day_guest_counter),
506 "NEW_GUEST" => intval($new_guest_counter),
520 intval($new_guest_counter),
530 "NEW_GUEST" => intval($new_guest_counter),
541 "C_HOSTS" => intval($day_host_counter_site),
543 "HOST" => intval($day_host_counter_site),
571 if ($_SESSION[
"SESS_COUNTRY_ID"] <>
'')
575 "NEW_GUESTS" => $new_guest_counter,
577 CStatistics::UpdateCountry($_SESSION[
"SESS_COUNTRY_ID"],
$arFields);
580 if($_SESSION[
"SESS_CITY_ID"] > 0)
584 "NEW_GUESTS" => $new_guest_counter,
586 CStatistics::UpdateCity($_SESSION[
"SESS_CITY_ID"],
$arFields);
591 "SESSIONS" =>
"SESSIONS + 1",
592 "LAST_SESSION_ID" => $_SESSION[
"SESS_SESSION_ID"],
593 "LAST_USER_AGENT" =>
"'".
$DB->ForSql(
$_SERVER[
"HTTP_USER_AGENT"] ??
'', 500).
"'",
594 "LAST_COUNTRY_ID" =>
"'".$DB->ForSql($_SESSION[
"SESS_COUNTRY_ID"],2).
"'",
595 "LAST_CITY_ID" => $_SESSION[
"SESS_CITY_ID"] > 0? intval($_SESSION[
"SESS_CITY_ID"]):
"null",
600 $arFields[
"LAST_CITY_INFO"] =
"'".$obCity->ForSQL().
"'";
603 if (intval($_SESSION[
"SESS_ADV_ID"])>0)
606 $arFields[
"LAST_ADV_ID"] = intval($_SESSION[
"SESS_ADV_ID"]);
608 $arFields[
"LAST_REFERER1"] =
"'".$DB->ForSql($_SESSION[
"referer1"],255).
"'";
609 $arFields[
"LAST_REFERER2"] =
"'".$DB->ForSql($_SESSION[
"referer2"],255).
"'";
610 $arFields[
"LAST_REFERER3"] =
"'".$DB->ForSql($_SESSION[
"referer3"],255).
"'";
612 elseif (intval($_SESSION[
"SESS_LAST_ADV_ID"])>0)
616 $arFields[
"LAST_REFERER1"] =
"'".$DB->ForSql($arGuest[
"last_referer1"],255).
"'";
617 $arFields[
"LAST_REFERER2"] =
"'".$DB->ForSql($arGuest[
"last_referer2"],255).
"'";
620 if ($_SESSION[
"SESS_GUEST_NEW"]==
"Y")
621 $arFields[
"FIRST_SESSION_ID"] = $_SESSION[
"SESS_SESSION_ID"];
622 $rows =
$DB->Update(
"b_stat_guest",
$arFields,
"WHERE ID=".intval($_SESSION[
"SESS_GUEST_ID"]),
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
625 if (intval($_SESSION[
"SESS_ADV_ID"])>0 || intval($_SESSION[
"SESS_LAST_ADV_ID"])>0)
627 CStatistics::Update_Adv();
634 $SAVE_REFERERS !=
"N"
640 $REFERER_LIST_ID = CStatistics::GetRefererListID($PROT, $SN, $PAGE_FROM, $CURRENT_URI, $ERROR_404, $sql_site);
646 if (mb_substr($SN, 0, 4) ==
"www.")
647 $sql =
"('".$DB->ForSql(mb_substr($SN, 4), 255).
"' like P.DOMAIN or '".
$DB->ForSql($SN,255).
"' like P.DOMAIN)";
649 $sql =
"'".$DB->ForSql($SN,255).
"' like P.DOMAIN";
659 b_stat_searcher_params P
662 and P.SEARCHER_ID = S.ID
665 $q =
$DB->Query($strSql);
666 if ($qr = $q->Fetch())
668 $_SESSION[
"FROM_SEARCHER_ID"] = $qr[
"ID"];
669 $FROM_SEARCHER_NAME = $qr[
"NAME"];
670 $FROM_SEARCHER_PHRASE =
"";
671 if ($qr[
"VARIABLE"] <>
'')
673 $page = mb_substr($PAGE_FROM, mb_strpos($PAGE_FROM,
"?") + 1);
676 $arrVar = explode(
",",$qr[
"VARIABLE"]);
677 foreach ($arrVar as
$var)
682 if(!$utf && $qr[
"CHAR_SET"] <>
'')
684 $phrase_temp = trim(\
Bitrix\Main\Text\Encoding::convertEncoding($phrase, $qr[
"CHAR_SET"],
"UTF-8"));
685 if($phrase_temp <>
'')
687 $phrase = $phrase_temp;
691 $phrase = trim($phrase);
694 $FROM_SEARCHER_PHRASE .= ($FROM_SEARCHER_PHRASE <>
'')?
" / ".$phrase : $phrase;
700 if ($FROM_SEARCHER_PHRASE <>
'')
703 "DATE_HIT" => $DB_now,
704 "SEARCHER_ID" => intval($_SESSION[
"FROM_SEARCHER_ID"]),
705 "REFERER_ID" => $REFERER_LIST_ID,
706 "PHRASE" =>
"'".
$DB->ForSql($FROM_SEARCHER_PHRASE,255).
"'",
707 "URL_FROM" =>
"'".$DB->ForSql($PROT.$SN.$PAGE_FROM,2000).
"'",
708 "URL_TO" =>
"'".$DB->ForSql($CURRENT_URI,2000).
"'",
709 "URL_TO_404" =>
"'".$ERROR_404.
"'",
710 "SESSION_ID" => $_SESSION[
"SESS_SESSION_ID"],
711 "SITE_ID" => $sql_site,
713 $id =
$DB->Insert(
"b_stat_phrase_list",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
716 CStatistics::Set404(
"b_stat_phrase_list",
"ID = ".intval($id),
array(
"URL_TO_404" =>
"Y"));
720 $_SESSION[
"SESS_SEARCH_PHRASE"] = $FROM_SEARCHER_PHRASE;
723 $_SESSION[
"SESS_FROM_SEARCHERS"][] = $_SESSION[
"FROM_SEARCHER_ID"];
724 $arFields = Array(
"PHRASES" =>
"PHRASES + 1");
725 $rows =
$DB->Update(
"b_stat_searcher",
$arFields,
"WHERE ID=".intval($_SESSION[
"FROM_SEARCHER_ID"]),
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
736 if($_SESSION[
"SESS_SESSION_ID"] > 0)
742 "SESSION_ID" => $_SESSION[
"SESS_SESSION_ID"],
743 "DATE_HIT" => $DB_now,
744 "GUEST_ID" => intval($_SESSION[
"SESS_GUEST_ID"]),
745 "NEW_GUEST" =>
"'".
$DB->ForSql($_SESSION[
"SESS_GUEST_NEW"]).
"'",
746 "USER_ID" => intval($_SESSION[
"SESS_LAST_USER_ID"]),
747 "USER_AUTH" =>
"'".$IS_USER_AUTHORIZED.
"'",
748 "URL" =>
"'".$DB->ForSql($CURRENT_URI,2000).
"'",
749 "URL_404" =>
"'".$ERROR_404.
"'",
750 "URL_FROM" =>
"'".$DB->ForSql(isset(
$_SERVER[
"HTTP_REFERER"])?
$_SERVER[
"HTTP_REFERER"]:
"", 2000).
"'",
751 "IP" =>
"'".
$DB->ForSql(
$_SERVER[
"REMOTE_ADDR"],15).
"'",
752 "METHOD" =>
"'".$DB->ForSql(
$_SERVER[
"REQUEST_METHOD"],10).
"'",
754 "USER_AGENT" =>
"'".
$DB->ForSql(
$_SERVER[
"HTTP_USER_AGENT"] ??
'', 500).
"'",
755 "STOP_LIST_ID" =>
"'".$STOP_LIST_ID.
"'",
756 "COUNTRY_ID" =>
"'".$DB->ForSql($_SESSION[
"SESS_COUNTRY_ID"],2).
"'",
757 "CITY_ID" => $_SESSION[
"SESS_CITY_ID"] > 0? intval($_SESSION[
"SESS_CITY_ID"]):
"null",
758 "SITE_ID" => $sql_site,
760 self::$HIT_ID = intval(
$DB->Insert(
"b_stat_hit",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__));
763 CStatistics::Set404(
"b_stat_hit",
"ID = ".self::$HIT_ID,
array(
"URL_404" =>
"Y"));
768 $favorites_counter = 0;
769 if ($FAVORITES==
"Y" && $_SESSION[
"SESS_GUEST_FAVORITES"]==
"N")
771 $ALLOW_ADV_FAVORITES =
"Y";
772 $_SESSION[
"SESS_GUEST_FAVORITES"] =
"Y";
773 $favorites_counter = 1;
778 "FAVORITES" => $favorites_counter,
780 "FAVORITE" => $favorites_counter,
789 $new_guest_counter = ($_SESSION[
"SESS_GUEST_NEW"]==
"Y") ? 1 : 0;
807 "NEW_GUEST" => $new_guest_counter,
808 "FAVORITE" => $favorites_counter
853 if ($SAVE_PATH_DATA!=
"N")
854 CStatistics::SavePathData(
$SITE_ID, $CURRENT_PAGE, $ERROR_404);
860 if ($SAVE_VISITS!=
"N")
861 CStatistics::SaveVisits($sql_site, $SESSION_NEW, $CURRENT_DIR, $CURRENT_PAGE, $ERROR_404);
866 "LAST_HIT_ID" => self::$HIT_ID,
867 "URL_LAST" =>
"'".
$DB->ForSql($CURRENT_URI,2000).
"'",
868 "URL_LAST_404" =>
"'".$ERROR_404.
"'",
869 "DATE_LAST" => $DB_now,
870 "LAST_SITE_ID" => $sql_site
872 if ($SESSION_NEW==
"Y")
$arFields[
"FIRST_HIT_ID"] = self::$HIT_ID;
873 if ($FAVORITES==
"Y")
$arFields[
"FAVORITES"] =
"'Y'";
874 $DB->Update(
"b_stat_session",
$arFields,
"WHERE ID=".$_SESSION[
"SESS_SESSION_ID"],
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
877 CStatistics::Set404(
"b_stat_session",
"ID = ".$_SESSION[
"SESS_SESSION_ID"],
array(
"URL_LAST_404" =>
"Y"));
882 "HITS" =>
"HITS + 1",
883 "LAST_SESSION_ID" => $_SESSION[
"SESS_SESSION_ID"],
884 "LAST_DATE" => $DB_now,
885 "LAST_USER_ID" => intval($_SESSION[
"SESS_LAST_USER_ID"]),
886 "LAST_USER_AUTH" =>
"'".$IS_USER_AUTHORIZED.
"'",
887 "LAST_URL_LAST" =>
"'".$DB->ForSql($CURRENT_URI,2000).
"'",
888 "LAST_URL_LAST_404" =>
"'".$ERROR_404.
"'",
889 "LAST_USER_AGENT" =>
"'".$DB->ForSql(
$_SERVER[
"HTTP_USER_AGENT"] ??
'', 500).
"'",
890 "LAST_IP" =>
"'".$DB->ForSql(
$_SERVER[
"REMOTE_ADDR"],15).
"'",
892 "LAST_LANGUAGE" =>
"'".
$DB->ForSql(
$_SERVER[
"HTTP_ACCEPT_LANGUAGE"] ??
'', 255).
"'",
893 "LAST_SITE_ID" => $sql_site
895 if ($FAVORITES==
"Y")
$arFields[
"FAVORITES"] =
"'Y'";
896 $DB->Update(
"b_stat_guest",
$arFields,
"WHERE ID=".intval($_SESSION[
"SESS_GUEST_ID"]),
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
899 CStatistics::Set404(
"b_stat_guest",
"ID = ".intval($_SESSION[
"SESS_GUEST_ID"]),
array(
"LAST_URL_LAST_404" =>
"Y"));
903 if (intval($_SESSION[
"SESS_ADV_ID"])>0)
907 "DATE_LAST" => $DB_now,
910 if ($FAVORITES==
"Y" && $ALLOW_ADV_FAVORITES==
"Y")
913 $arFields[
"FAVORITES"] =
"FAVORITES + 1";
916 $DB->Update(
"b_stat_adv",
$arFields,
"WHERE ID=".intval($_SESSION[
"SESS_ADV_ID"]),
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
919 $arFields = Array(
"HITS" =>
"HITS+1",
"FAVORITES" =>
"FAVORITES + ".intval($favorite));
920 $rows =
$DB->Update(
"b_stat_adv_day",
$arFields,
"WHERE ADV_ID=".intval($_SESSION[
"SESS_ADV_ID"]).
" and DATE_STAT=".$DB_now_date,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
922 if (intval(
$rows)<=0)
926 "ADV_ID" => intval($_SESSION[
"SESS_ADV_ID"]),
927 "DATE_STAT" => $DB_now_date,
929 "FAVORITES" => intval($favorite)
931 $DB->Insert(
"b_stat_adv_day",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
935 elseif (intval($_SESSION[
"SESS_LAST_ADV_ID"])>0)
939 "DATE_LAST" => $DB_now,
940 "HITS_BACK" =>
"HITS_BACK+1"
942 if ($FAVORITES==
"Y" && $ALLOW_ADV_FAVORITES==
"Y")
945 $arFields[
"FAVORITES_BACK"] =
"FAVORITES_BACK + 1";
948 $DB->Update(
"b_stat_adv",
$arFields,
"WHERE ID=".intval($_SESSION[
"SESS_LAST_ADV_ID"]),
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
950 $arFields = Array(
"HITS_BACK" =>
"HITS_BACK+1",
"FAVORITES_BACK" =>
"FAVORITES_BACK + ".intval($favorite));
952 $rows =
$DB->Update(
"b_stat_adv_day",
$arFields,
"WHERE ADV_ID=".intval($_SESSION[
"SESS_LAST_ADV_ID"]).
" and DATE_STAT=".$DB_now_date,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
954 if (intval(
$rows)<=0)
958 "ADV_ID" => intval($_SESSION[
"SESS_LAST_ADV_ID"]),
959 "DATE_STAT" => $DB_now_date,
961 "FAVORITES_BACK" => intval($favorite),
963 $DB->Insert(
"b_stat_adv_day",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
968 if (defined(
"GENERATE_EVENT") && GENERATE_EVENT==
"Y")
973 CStatistics::Set_Event($event1, $event2, $event3, $goto, $money,
$currency,
$site_id);
977 if ($_SESSION[
"SESS_COUNTRY_ID"] <>
'')
979 CStatistics::UpdateCountry($_SESSION[
"SESS_COUNTRY_ID"], Array(
"HITS" => 1));
982 if($_SESSION[
"SESS_CITY_ID"] > 0)
984 CStatistics::UpdateCity($_SESSION[
"SESS_CITY_ID"], Array(
"HITS" => 1));
988 isset($_SESSION[
"SESS_FROM_SEARCHERS"])
989 && is_array($_SESSION[
"SESS_FROM_SEARCHERS"])
990 && !empty($_SESSION[
"SESS_FROM_SEARCHERS"])
994 $arFields = Array(
"PHRASES_HITS" =>
"PHRASES_HITS+1");
995 $_SESSION[
"SESS_FROM_SEARCHERS"] = array_unique($_SESSION[
"SESS_FROM_SEARCHERS"]);
996 if(
count($_SESSION[
"SESS_FROM_SEARCHERS"]) > 0)
999 foreach($_SESSION[
"SESS_FROM_SEARCHERS"] as $value)
1000 $str .=
", ".intval($value);
1001 $DB->Update(
"b_stat_searcher",
$arFields,
"WHERE ID in ($str)",
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1005 if (isset($_SESSION[
"SESS_REFERER_ID"]) && intval($_SESSION[
"SESS_REFERER_ID"])>0)
1009 $DB->Update(
"b_stat_referer",
$arFields,
"WHERE ID=".intval($_SESSION[
"SESS_REFERER_ID"]),
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1017 $_SESSION[
"SESS_HTTP_REFERER"] = $_SESSION[
"SESS_LAST_URI"] ??
'';
1018 $_SESSION[
"SESS_LAST_PROTOCOL"] = $CURRENT_PROTOCOL;
1019 $_SESSION[
"SESS_LAST_PORT"] = $CURRENT_PORT;
1020 $_SESSION[
"SESS_LAST_HOST"] = $CURRENT_HOST;
1021 $_SESSION[
"SESS_LAST_URI"] = $CURRENT_URI;
1022 $_SESSION[
"SESS_LAST_PAGE"] = $CURRENT_PAGE;
1023 $_SESSION[
"SESS_LAST_DIR"] = $CURRENT_DIR;
1032 $fname =
$_SERVER[
"DOCUMENT_ROOT"].BX_PERSONAL_ROOT.
"/activity_limit.php";
1033 if(file_exists($fname))
1050 if($SESSION_DATA_ID)
1053 $sess_data_for_db = (
$DB->type ==
"ORACLE") ?
"'".
$DB->ForSql(serialize($arrSTAT_SESSION), 2000).
"'" :
"'".$DB->ForSql(serialize($arrSTAT_SESSION)).
"'";
1055 if((intval($SESSION_DATA_ID) > 0) && ($SESSION_DATA_ID !==
true))
1059 "DATE_LAST" => $DB_now,
1061 "SESS_SESSION_ID" => intval($_SESSION[
"SESS_SESSION_ID"]),
1062 "SESSION_DATA" => $sess_data_for_db
1064 $DB->Update(
"b_stat_session_data",
$arFields,
"WHERE ID = ".intval($SESSION_DATA_ID),
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1070 "DATE_FIRST" => $DB_now,
1071 "DATE_LAST" => $DB_now,
1073 "SESS_SESSION_ID" => intval($_SESSION[
"SESS_SESSION_ID"]),
1074 "SESSION_DATA" => $sess_data_for_db
1076 $DB->Insert(
"b_stat_session_data",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
1085 $charset = (
$zr[
"CHARSET"] <>
'') ?
$zr[
"CHARSET"] :
"windows-1251";
1088 if(($STOP_REDIRECT_URL <>
'') && ($STOP_MESSAGE ==
''))
1093 elseif($STOP_MESSAGE <>
'')
1095 $STOP_MESSAGE .=
" [".$STOP_LIST_ID.
"]";
1098 <meta http-equiv="Content-Type" content="text/html; charset='.$charset.
'">
1099 '.($STOP_REDIRECT_URL <>
''?
'<meta http-equiv="Refresh" content="3;URL='.htmlspecialcharsbx($STOP_REDIRECT_URL).
'">':
'').
'
1102 <div align="center"><h3>'.$STOP_MESSAGE.
'</h3></div>
1216 $DB = CDatabase::GetModuleConnection(
'statistic');
1217 $DB_now =
$DB->GetNowFunction();
1218 $DB_now_date =
$DB->GetNowDate();
1219 $STEPS = intval(COption::GetOptionString(
"statistic",
"MAX_PATH_STEPS"));
1221 if(isset($_SESSION[
"SESS_LAST_PAGE"]) && $_SESSION[
"SESS_LAST_PAGE"] == $CURRENT_PAGE)
1224 $COUNTER_ABNORMAL = 0;
1227 if (empty(
$_SERVER[
"HTTP_REFERER"]))
1229 if (!empty($_SESSION[
"SESS_LAST_PAGE"]))
1231 $COUNTER_ABNORMAL = 1;
1240 if($PATH_REFERER==$CURRENT_PAGE)
1244 if($PATH_REFERER <>
'')
1246 $where1 =
" and C.PATH_LAST_PAGE = '".$DB->ForSql($PATH_REFERER,255).
"'";
1250 $where1 =
" and (C.PATH_LAST_PAGE is null or ".$DB->Length(
"C.PATH_LAST_PAGE").
"<=0)";
1258 C.PATH_FIRST_PAGE_SITE_ID,
1259 C.PATH_FIRST_PAGE_404,
1266 C.SESSION_ID = ".intval($_SESSION[
'SESS_SESSION_ID']).
"
1272 $rsPREV_PATH =
$DB->Query($strSql);
1273 $arPREV_PATH = $rsPREV_PATH->Fetch();
1281 "PATH_FIRST_PAGE" =>
'',
1282 "PATH_LAST_PAGE" =>
'',
1283 "IS_LAST_PAGE" =>
'',
1287 $arrUpdate404_1 =
array();
1288 $arrUpdate404_2 =
array();
1291 $CURRENT_PATH_ID =
GetStatPathID($CURRENT_PAGE, $arPREV_PATH[
"PATH_ID"]);
1293 $CURRENT_PATH_PAGES_404 = $arPREV_PATH[
"PATH_PAGES"].$tmp_SITE_ID.
"ERROR_404: ".$CURRENT_PAGE.
"\n";
1295 if ($ERROR_404==
"Y")
1297 $CURRENT_PATH_PAGES = $CURRENT_PATH_PAGES_404;
1301 $CURRENT_PATH_PAGES = $arPREV_PATH[
"PATH_PAGES"].$tmp_SITE_ID.$CURRENT_PAGE.
"\n";
1303 if(
$DB->type ==
"ORACLE")
1304 $arrUpdate404_1[
"PATH_PAGES"] = mb_substr($CURRENT_PATH_PAGES_404, 0, 2000);
1306 $arrUpdate404_1[
"PATH_PAGES"] = mb_substr($CURRENT_PATH_PAGES_404, 0, 7000);
1308 $arrUpdate404_1[
"PATH_PAGES"] = $CURRENT_PATH_PAGES_404;
1310 $arrUpdate404_2[
"PAGES"] = $arrUpdate404_1[
"PATH_PAGES"];
1313 $CURRENT_PATH_STEPS = intval($arPREV_PATH[
"PATH_STEPS"])+1;
1314 if ($arPREV_PATH[
"PATH_FIRST_PAGE"] <>
'')
1316 $FIRST_PAGE = $arPREV_PATH[
"PATH_FIRST_PAGE"];
1317 $FIRST_PAGE_SITE_ID = $arPREV_PATH[
"PATH_FIRST_PAGE_SITE_ID"];
1318 $FIRST_PAGE_404 = ($arPREV_PATH[
"PATH_FIRST_PAGE_404"]==
"Y") ?
"Y" :
"N";
1322 $FIRST_PAGE = $CURRENT_PAGE;
1324 $FIRST_PAGE_404 = $ERROR_404;
1326 if ($ERROR_404==
"N")
1328 $arrUpdate404_1[
"PATH_FIRST_PAGE_404"] =
"Y";
1329 $arrUpdate404_2[
"FIRST_PAGE_404"] =
"Y";
1333 $sql_CURRENT_PATH_PAGES =
$DB->ForSql($CURRENT_PATH_PAGES);
1335 $sql_FIRST_PAGE_SITE_ID = $FIRST_PAGE_SITE_ID <>
'' ?
"'".$DB->ForSql($FIRST_PAGE_SITE_ID,2).
"'" :
"null";
1341 "SESSION_ID" => intval($_SESSION[
'SESS_SESSION_ID']),
1342 "PATH_ID" => intval($CURRENT_PATH_ID),
1343 "PATH_PAGES" =>
"'".$sql_CURRENT_PATH_PAGES.
"'",
1344 "PATH_FIRST_PAGE" =>
"'".$DB->ForSql($FIRST_PAGE, 255).
"'",
1345 "PATH_FIRST_PAGE_404" =>
"'".$DB->ForSql($FIRST_PAGE_404).
"'",
1346 "PATH_FIRST_PAGE_SITE_ID" => $sql_FIRST_PAGE_SITE_ID,
1347 "PATH_LAST_PAGE" =>
"'".$DB->ForSql($CURRENT_PAGE,255).
"'",
1348 "PATH_LAST_PAGE_404" =>
"'".$DB->ForSql($ERROR_404).
"'",
1349 "PATH_LAST_PAGE_SITE_ID" => $sql_LAST_PAGE_SITE_ID,
1350 "PATH_STEPS" => $CURRENT_PATH_STEPS,
1351 "DATE_HIT" => $DB_now,
1352 "IS_LAST_PAGE" =>
"'Y'"
1354 $id =
$DB->Insert(
"b_stat_path_cache",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
1355 if ($ERROR_404==
"N")
1357 $arrUpdate404_1[
"PATH_LAST_PAGE_404"] =
"Y";
1358 $arrUpdate404_2[
"LAST_PAGE_404"] =
"Y";
1360 CStatistics::Set404(
"b_stat_path_cache",
"ID = ".intval($id), $arrUpdate404_1);
1364 "COUNTER" =>
"COUNTER + 1",
1365 "COUNTER_FULL_PATH" =>
"COUNTER_FULL_PATH + 1",
1366 "COUNTER_ABNORMAL" =>
"COUNTER_ABNORMAL + ".intval($COUNTER_ABNORMAL),
1368 $rows =
$DB->Update(
"b_stat_path",
$arFields,
"WHERE PATH_ID='".$CURRENT_PATH_ID.
"' and DATE_STAT=".$DB_now_date,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1370 if (intval(
$rows)<=0)
1372 $sql_PARENT_PATH_ID = ($arPREV_PATH[
"PATH_ID"] <>
'') ? $arPREV_PATH[
"PATH_ID"] :
"null";
1374 "PATH_ID" => intval($CURRENT_PATH_ID),
1375 "PARENT_PATH_ID" => $sql_PARENT_PATH_ID,
1376 "DATE_STAT" => $DB_now_date,
1378 "COUNTER_FULL_PATH" => 1,
1379 "COUNTER_ABNORMAL" => intval($COUNTER_ABNORMAL),
1380 "PAGES" =>
"'".$sql_CURRENT_PATH_PAGES.
"'",
1381 "FIRST_PAGE" =>
"'".$DB->ForSql($FIRST_PAGE,255).
"'",
1382 "FIRST_PAGE_SITE_ID" => $sql_FIRST_PAGE_SITE_ID,
1383 "FIRST_PAGE_404" =>
"'".$DB->ForSql($FIRST_PAGE_404).
"'",
1384 "PREV_PAGE" =>
"'".$DB->ForSql($arPREV_PATH[
"PATH_LAST_PAGE"]).
"'",
1385 "PREV_PAGE_HASH" =>
crc32ex($arPREV_PATH[
"PATH_LAST_PAGE"]),
1386 "LAST_PAGE" =>
"'".
$DB->ForSql($CURRENT_PAGE,255).
"'",
1387 "LAST_PAGE_404" =>
"'".$DB->ForSql($ERROR_404).
"'",
1388 "LAST_PAGE_SITE_ID" => $sql_LAST_PAGE_SITE_ID,
1389 "LAST_PAGE_HASH" =>
crc32ex($CURRENT_PAGE),
1390 "STEPS" => $CURRENT_PATH_STEPS
1392 if($CURRENT_PATH_STEPS<=$STEPS)
1394 $id =
$DB->Insert(
"b_stat_path",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
1395 CStatistics::Set404(
"b_stat_path",
"ID = ".intval($id), $arrUpdate404_2);
1400 if ($arPREV_PATH[
"IS_LAST_PAGE"]==
"Y")
1403 $arFields =
array(
"COUNTER_FULL_PATH" =>
"COUNTER_FULL_PATH - 1");
1404 $DB->Update(
"b_stat_path",
$arFields,
"WHERE PATH_ID='".$arPREV_PATH[
"PATH_ID"].
"' and DATE_STAT=".$DB_now_date,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1408 $DB->Update(
"b_stat_path_cache",
$arFields,
"WHERE ID='".$arPREV_PATH[
"CACHE_ID"].
"'",
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1412 if (intval($_SESSION[
"SESS_ADV_ID"])>0)
1414 $ADV_ID = intval($_SESSION[
"SESS_ADV_ID"]);
1416 "COUNTER" =>
"COUNTER + 1",
1417 "COUNTER_FULL_PATH" =>
"COUNTER_FULL_PATH + 1"
1420 $sql_COUNTER_FULL_PATH = 1;
1421 $sql_COUNTER_BACK = 0;
1422 $sql_COUNTER_FULL_PATH_BACK = 0;
1425 elseif (intval($_SESSION[
"SESS_LAST_ADV_ID"])>0)
1427 $ADV_ID = intval($_SESSION[
"SESS_LAST_ADV_ID"]);
1429 "COUNTER_BACK" =>
"COUNTER_BACK + 1",
1430 "COUNTER_FULL_PATH_BACK" =>
"COUNTER_FULL_PATH_BACK + 1"
1433 $sql_COUNTER_FULL_PATH = 0;
1434 $sql_COUNTER_BACK = 1;
1435 $sql_COUNTER_FULL_PATH_BACK = 1;
1441 $rows =
$DB->Update(
"b_stat_path_adv",
$arFields,
"WHERE ADV_ID=".intval($ADV_ID).
" and PATH_ID='".$CURRENT_PATH_ID.
"' and DATE_STAT=".$DB_now_date,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1442 if (intval(
$rows)<=0)
1445 "ADV_ID" => intval($ADV_ID),
1446 "PATH_ID" => intval($CURRENT_PATH_ID),
1447 "DATE_STAT" => $DB_now_date,
1448 "COUNTER" => $sql_COUNTER,
1449 "COUNTER_BACK" => $sql_COUNTER_BACK,
1450 "COUNTER_FULL_PATH" => $sql_COUNTER_FULL_PATH,
1451 "COUNTER_FULL_PATH_BACK" => $sql_COUNTER_FULL_PATH_BACK,
1452 "STEPS" => $CURRENT_PATH_STEPS,
1454 if($CURRENT_PATH_STEPS<=$STEPS)
1456 $DB->Insert(
"b_stat_path_adv",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
1459 if ($arPREV_PATH[
"IS_LAST_PAGE"]==
"Y")
1463 $arFields =
array(
"COUNTER_FULL_PATH" =>
"COUNTER_FULL_PATH - 1");
1464 $DB->Update(
"b_stat_path_adv",
$arFields,
"WHERE ADV_ID='".$ADV_ID.
"' and PATH_ID='".$arPREV_PATH[
"PATH_ID"].
"' and DATE_STAT=".$DB_now_date,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1468 $arFields =
array(
"COUNTER_FULL_PATH_BACK" =>
"COUNTER_FULL_PATH_BACK - 1");
1469 $DB->Update(
"b_stat_path_adv",
$arFields,
"WHERE ADV_ID='".$ADV_ID.
"' and PATH_ID='".$arPREV_PATH[
"PATH_ID"].
"' and DATE_STAT=".$DB_now_date,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1474 public static function SaveVisits($sql_site, $SESSION_NEW, $CURRENT_DIR, $CURRENT_PAGE, $ERROR_404)
1476 $DB = CDatabase::GetModuleConnection(
'statistic');
1477 $DB_now_date =
$DB->GetNowDate();
1478 $enter_counter = ($SESSION_NEW==
"Y") ? 1 : 0;
1479 if ($CURRENT_DIR <>
'' && $CURRENT_PAGE <>
'')
1481 $LAST_DIR_ID = intval($_SESSION[
"SESS_LAST_DIR_ID"] ?? 0);
1482 $LAST_PAGE_ID = intval($_SESSION[
"SESS_LAST_PAGE_ID"] ?? 0);
1483 $CURRENT_DIR_ID = 0;
1484 $CURRENT_PAGE_ID = 0;
1485 $exit_dir_counter = 0;
1486 $exit_page_counter = 0;
1487 if (!isset($_SESSION[
"SESS_LAST_DIR"]) || $_SESSION[
"SESS_LAST_DIR"] != $CURRENT_DIR || !isset($_SESSION[
"SESS_LAST_PAGE"]) || $_SESSION[
"SESS_LAST_PAGE"] != $CURRENT_PAGE)
1496 DATE_STAT = ".$DB_now_date.
"
1498 (URL='".
$DB->ForSql($CURRENT_DIR,2000).
"' and DIR='Y') or
1499 (URL='".
$DB->ForSql($CURRENT_PAGE,2000).
"' and DIR='N')
1503 $rsID =
$DB->Query($strSql);
1504 while ($arID = $rsID->Fetch())
1506 if ($arID[
"DIR"]==
"Y") $CURRENT_DIR_ID = $arID[
"ID"];
1507 elseif ($arID[
"DIR"]==
"N") $CURRENT_PAGE_ID = $arID[
"ID"];
1509 if ($CURRENT_DIR_ID!=$LAST_DIR_ID) $exit_dir_counter = 1;
1510 if ($CURRENT_PAGE_ID!=$LAST_PAGE_ID) $exit_page_counter = 1;
1514 $CURRENT_DIR_ID = $LAST_DIR_ID;
1515 $CURRENT_PAGE_ID = $LAST_PAGE_ID;
1519 if (intval($_SESSION[
"SESS_ADV_ID"])>0)
1521 $ADV_ID = intval($_SESSION[
"SESS_ADV_ID"]);
1524 elseif (intval($_SESSION[
"SESS_LAST_ADV_ID"])>0)
1526 $ADV_ID = intval($_SESSION[
"SESS_LAST_ADV_ID"]);
1533 if ($LAST_DIR_ID>0 && $exit_dir_counter>0)
1536 $DB->Update(
"b_stat_page",
$arFields,
"WHERE ID = '".$LAST_DIR_ID.
"'",
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1542 "EXIT_COUNTER_BACK" =>
"EXIT_COUNTER_BACK - 1"
1545 $DB->Update(
"b_stat_page_adv",
$arFields,
"WHERE PAGE_ID = '".$LAST_DIR_ID.
"' and ADV_ID=".$ADV_ID,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1550 if ($CURRENT_DIR_ID>0)
1553 "COUNTER" =>
"COUNTER + 1",
1554 "EXIT_COUNTER" =>
"EXIT_COUNTER + ".$exit_dir_counter,
1555 "ENTER_COUNTER" =>
"ENTER_COUNTER + ".$enter_counter
1557 $DB->Update(
"b_stat_page",
$arFields,
"WHERE ID = '".$CURRENT_DIR_ID.
"'",
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1563 "COUNTER_BACK" =>
"COUNTER_BACK + 1",
1564 "EXIT_COUNTER_BACK" =>
"EXIT_COUNTER_BACK + ".$exit_dir_counter,
1565 "ENTER_COUNTER_BACK" =>
"ENTER_COUNTER_BACK + ".$enter_counter
1568 $adv_rows_dir =
$DB->Update(
"b_stat_page_adv",
$arFields,
"WHERE PAGE_ID = '".$CURRENT_DIR_ID.
"' and ADV_ID = ".$ADV_ID,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1574 "DATE_STAT" => $DB_now_date,
1576 "EXIT_COUNTER" => 1,
1577 "ENTER_COUNTER" => $enter_counter,
1579 "URL" =>
"'".
$DB->ForSql($CURRENT_DIR,2000).
"'",
1580 "URL_HASH" =>
crc32ex($CURRENT_DIR),
1581 "SITE_ID" => $sql_site
1583 $CURRENT_DIR_ID =
$DB->Insert(
"b_stat_page",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
1585 $_SESSION[
"SESS_LAST_DIR_ID"] = $CURRENT_DIR_ID;
1587 if (intval($adv_rows_dir)<=0)
1592 "DATE_STAT" => $DB_now_date,
1593 "PAGE_ID" => $CURRENT_DIR_ID,
1594 "ADV_ID" => $ADV_ID,
1596 "EXIT_COUNTER" => 1,
1597 "ENTER_COUNTER" => $enter_counter,
1598 "COUNTER_BACK" => 0,
1599 "EXIT_COUNTER_BACK" => 0,
1600 "ENTER_COUNTER_BACK" => 0
1609 $arFields[
"ENTER_COUNTER_BACK"] = $enter_counter;
1611 $DB->Insert(
"b_stat_page_adv",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
1616 if ($LAST_PAGE_ID>0 && $exit_page_counter>0)
1619 $DB->Update(
"b_stat_page",
$arFields,
"WHERE ID = '".$LAST_PAGE_ID.
"'",
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1625 "EXIT_COUNTER_BACK" =>
"EXIT_COUNTER_BACK - 1"
1628 $DB->Update(
"b_stat_page_adv",
$arFields,
"WHERE PAGE_ID = '".$LAST_PAGE_ID.
"' and ADV_ID=".$ADV_ID,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1633 if ($CURRENT_PAGE_ID>0)
1636 "COUNTER" =>
"COUNTER + 1",
1637 "EXIT_COUNTER" =>
"EXIT_COUNTER + ".$exit_page_counter,
1638 "ENTER_COUNTER" =>
"ENTER_COUNTER + ".$enter_counter,
1639 "URL_404" =>
"'".$ERROR_404.
"'"
1641 $DB->Update(
"b_stat_page",
$arFields,
"WHERE ID = '".$CURRENT_PAGE_ID.
"'",
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1642 if ($ERROR_404==
"N")
1644 CStatistics::Set404(
"b_stat_page",
"ID = ".intval($CURRENT_PAGE_ID),
array(
"URL_404" =>
"Y"));
1652 "COUNTER_BACK" =>
"COUNTER_BACK + 1",
1653 "EXIT_COUNTER_BACK" =>
"EXIT_COUNTER_BACK + ".$exit_dir_counter,
1654 "ENTER_COUNTER_BACK" =>
"ENTER_COUNTER_BACK + ".$enter_counter
1658 $adv_rows_page =
$DB->Update(
"b_stat_page_adv",
$arFields,
"WHERE PAGE_ID = '".$CURRENT_PAGE_ID.
"' and ADV_ID = ".$ADV_ID,
"File: ".__FILE__.
"<br>Line: ".__LINE__,
false,
false,
false);
1664 "DATE_STAT" => $DB_now_date,
1666 "EXIT_COUNTER" => 1,
1667 "ENTER_COUNTER" => $enter_counter,
1669 "URL" =>
"'".
$DB->ForSql($CURRENT_PAGE,2000).
"'",
1670 "URL_404" =>
"'".$ERROR_404.
"'",
1671 "URL_HASH" =>
crc32ex($CURRENT_PAGE),
1672 "SITE_ID" => $sql_site
1674 $CURRENT_PAGE_ID =
$DB->Insert(
"b_stat_page",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);
1675 if ($ERROR_404==
"N")
1677 CStatistics::Set404(
"b_stat_page",
"ID = ".intval($CURRENT_PAGE_ID),
array(
"URL_404" =>
"Y"));
1680 $_SESSION[
"SESS_LAST_PAGE_ID"] = $CURRENT_PAGE_ID;
1682 if (intval($adv_rows_page)<=0 && $ADV_ID>0)
1685 "DATE_STAT" => $DB_now_date,
1686 "PAGE_ID" => $CURRENT_PAGE_ID,
1687 "ADV_ID" => $ADV_ID,
1688 "COUNTER" => $bADV_BACK?0:1,
1689 "EXIT_COUNTER" => $bADV_BACK?0:1,
1690 "ENTER_COUNTER" => $bADV_BACK?0:$enter_counter,
1691 "COUNTER_BACK" => $bADV_BACK?1:0,
1692 "EXIT_COUNTER_BACK" => $bADV_BACK?1:0,
1693 "ENTER_COUNTER_BACK" => $bADV_BACK?$enter_counter:0,
1695 $DB->Insert(
"b_stat_page_adv",
$arFields,
"File: ".__FILE__.
"<br>Line: ".__LINE__);