statistics

Основная таблица данных статистики посещаемости.

В таблицу входят следующие поля:

id - идентификатор строки в таблице (создается инкрементом)

from_domain_id - идентификатор доменного имени сайта с которого выполнен переход (domain_id из таблицы statistics_domains)

from_path_id - идентификатор URL страницы с которой выполнен переход (path_id из таблицы statistics_paths)

from_search_system - идентификатор поисковой системы:

1 - Yandex
2 - Google
3 - Rambler
4 - Aport
5 - Mail
6 - Yahoo
7 - Live
8 - Bing

keyword_id - идентификатор ключевой фразы по которой выполнен переход (keyword_id из таблицы statistics_keywords)

date_time - время когда выполнено действие (в формате UNIX timestamp)

visitor_id - идентификатор посетителя который выполнил переход (visitor_id из таблицы statistics_visitors)

bot_id - идентификатор бота который выполнил просмотр страницы (bot_id из таблицы phpbb3_bots)

to_domain_id - идентификатор доменного имени сайта на который выполнен переход (domain_id из таблицы statistics_domains)

to_path_id - идентификатор URL страницы которую просмотрели или файла который скачали (path_id из таблицы statistics_paths)

config_id - идентификатор конфигурации, который включается в системе администрирования (Система - Конфигурация):

12 - Отслеживать посещаемость страниц
13 - Отслеживать переходы на несуществующие страницы
14 - Отслеживать выходы (покидания и закрытия страниц)
15 - Отслеживать переходы на аффилаты (уходы на чужие сайты)
16 - Отслеживать скачивание файлов
17 - Отслеживать индексирование поисковыми ботами
18 - WAP или PDA

Заметки:

config_id = 16 не имеет from_domain_id т.к. идентификатор домена сайта с которого скачан файл содержится в поле to_domain_id

function statistics($config_name=0, $visitor_id=0){
	
	// если нет подключения к Б.Д. ИЛИ неопределено имя кукиес
	if(!$GLOBALS['dbcnx'] || !$GLOBALS['SYSTEM']['config']['yapro_cookie_statistics']){ return false; }
	
	// проверка на включение вида опции сбора статистики в настройках сайта
	if(!$GLOBALS['SYSTEM']['config'][ $config_name ]){ return false; }
	
	 if(statistics_ignore_ip()){ return false; }
	
	// возможно текущий просмотр является индексацией поискового бота
	if($config_name=='yapro_statistics_indexing_bots'){
		if($q = mysql_query("SELECT bot_id, bot_agent FROM ".$GLOBALS['SYSTEM']['config']['yapro_phpbb3_prefix']."bots WHERE bot_active='1'")){
			while($r=mysql_fetch_assoc($q)){
				if(mb_stristr($_SERVER['HTTP_USER_AGENT'], $r['bot_agent'])){
					$bot_id = $r['bot_id'];// индексирование ботом
					break;// если бот определен - прекращаем итерацию
				}
			}
		}
		if(!$bot_id){ return false; }
	}
	
	$url = $GLOBALS['SYSTEM']['statistics']['TO_URI']? $GLOBALS['SYSTEM']['statistics']['TO_URI'] : $_SERVER['REQUEST_URI'];
	$to_path_id = statistics_path($url);// определяю ее path_id
	
	if(!$to_path_id){ return false; }
	
	// проверка игнорирования данной страницы:
	$ignore = @mysql_fetch_assoc(mysql_query("SELECT path_id FROM ".SYSTEM_PREFIX."statistics_paths_ignored WHERE 
	domain_id='".statistics_domain_id()."' AND path_id = '".$to_path_id."'"));
	
	if($ignore['path_id']){ return false; }
	
	$host = $GLOBALS['SYSTEM']['statistics']['TO_HOST']? $GLOBALS['SYSTEM']['statistics']['TO_HOST'] : $_SERVER['HTTP_HOST'];
	$to_domain = statistics_host_clear($host);
	$to_domain_id = statistics_domain_id($to_domain);// проверяем есть ли такой домен в Б.Д.
	
	if($config_name!='yapro_statistics_indexing_bots'){// если: не индексация
		
		if(!$visitor_id){ $visitor_id = statistics_visitor_id(); }
		
		$referer = parse_url_($_SERVER['HTTP_REFERER']);
		
		if($referer['host']){// если: пришел с какого-то сайта (возможно с текущего же)
			
			$from_domain = statistics_host_clear($referer['host']);
			$from_path_id = statistics_path($_SERVER['HTTP_REFERER']);// определяю from_path_id
			
			
			if($from_domain==$to_domain){// переход с страницы текущего сайта на страницу текущего сайта
				
				$from_domain_id = $to_domain_id;
				
			}else{
				
				$from_domain_id = statistics_domain_id($from_domain);
				
				if(!$bot_id && $w = statistics_search_text()){// проверка нахождения ключевой фразы
					
					$w = substr($w,0,255);// специально не mb_substr т.к. UTF-8 полю keyword в MySQL прописано 255 байт - это не 255 символов
					
					// проверяем наличие в Б.Д. фразы по которой пришли
					$keywords = @mysql_fetch_assoc(mysql_("SELECT keyword_id FROM ".SYSTEM_PREFIX."statistics_keywords WHERE keyword = "._.$w._.""));
					
					if(!$keywords['keyword_id']){
						// поле $GLOBALS['SYSTEM']['statistics']['search_system'] объявлено для тестирования
						mysql_("INSERT INTO ".SYSTEM_PREFIX."statistics_keywords VALUES (NULL, "._.$w._.", 
						"._.$GLOBALS['SYSTEM']['statistics']['search_system']._.", 
						"._.$_SERVER['HTTP_REFERER']._.")");
						$keywords['keyword_id'] = mysql_insert_id();
					}
				}
			}
		}
	}
	
	$config_id = array(
		'yapro_statistics_attendance' => 12,
		'yapro_statistics_404' => 13,
		'yapro_statistics_exit' => 14,
		'yapro_statistics_affiliates' => 15,
		'yapro_statistics_downloading_files' => 16,
		'yapro_statistics_indexing_bots' => 17,
		'yapro_statistics_wap_pda' => 18,
		'yapro_statistics_bookmarks' => 21
	);
	
	mysql_("INSERT INTO ".SYSTEM_PREFIX."statistics VALUES (
	"._._.",
	"._.$from_domain_id._.",
	"._.$from_path_id._.",
	"._.$GLOBALS['SYSTEM']['statistics']['search_system']._.",
	"._.$keywords['keyword_id']._.",
	"._.time()._.",
	"._.$visitor_id._.",
	"._.$bot_id._.",
	"._.$to_domain_id._.",
	"._.$to_path_id._.",
	"._.$config_id[ $config_name ]._.")");
	
	if($GLOBALS['SYSTEM']['statistics']['newVisitor']){// попытка установить куку новому посетителю
		$visitor_first_id = mysql_insert_id();// возможность восстановить правильность данных
		@setcookie($GLOBALS['SYSTEM']['config']['yapro_cookie_statistics'], $visitor_id.'_'.$visitor_first_id, ($time+5555555), '/');// строковое имя
	}
}



Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри

Обсуждения на форуме:

Кто-нибудь может мне помочь???

Помогите пожалуйста с "nofollow"

Будущее ЯPro

Чат

Создание меню

Ошибки в логах

Нужна помощь в реализации

Полезное:

Видео-обучение

Работа с шаблонами

Документация API

База данных и её таблицы

Регистрация на форуме

Скачать последнюю версию

Связь с авторами

Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2019 YaPro.Ru

Главная » Документация » База данных и её таблицы »