Самоучитель по креативному веб-дизайну. Книга 4, стр.23

Если провайдер не включит функцию протоколирования посещений сайта (из-за дополнительного места, занимаемого файлов журналов, и потребления ре- сурсов сервера на их ведение), или если вы хотите отслеживать доступ только к

определенным страницам сайта, для создания собственных отчетов о посещаемо — сти можно воспользоваться таблицей MySQL и набором PHP-сценариев. Предпо — ложим, например, что для создания таблицы usageLog в базе данных MySQL был выполнен следующий SQL-оператор CREATE:



CREATE TABLE UsageLog

(visitor_I P TEXT,

page_URL TEXT,

54 0 Глава 10. РНР4





DT_retrieved TIMESTAMP,

referrer URL TEXT, session_I D TEXT,

session_view s INTEGER) ; [ НИ

Цосле этого можно подготовить код, вызывающий показанную ниже пользо - вательскую функцию в начале каждой PHP-страницы, для которой необходимо отслеживать посещаемость. Эта функция будет добавлять строки в таблицу

usageLog базы данных MySQL.



function recordPageHit($db_host,$db_user,$db_pass,$db_name,$sessionID)

{

global $REMOTE_ADDR, $HTTP_XJFORWARDED_FOR, $PHP_SELF, $link, $result;

// Для экономии места используется функция str_jreplace() для удаления из

// URL строки //"http://". Кроме того, для исключения запроса после "?" в

// URL используется explode(), если таковой имеется.

$referer = explode("?",

str_replace("http://", "", getenv("HTTP_REFERER")));

// Вызвать пользовательскую функцию для установки соединения с СУБД MySQL

if (connectToDB ($db_host, $db_user, $db pass, $db name))

{

// Вставить только одну строку для каждой страницы в одном сеансе. Если

// посетитель просматривает страницу несколько раз, отслеживать коли -

// чество посещений за сеанс в столбце Msession views" таблицы "usageLog"

$query = "UPDATE usageLog " .

"SET session_views = session views + 1 ".

"WHERE session ID '= '$sessionID' ".

" AND page_URL = ' $PHP_JSELF' " ;

$result = executeQuery($query);

// Проверить присутствует ли оператор UPDATE в строке для страницы.

// Если нет, вставить в таблицу строку для страницы. Страница будет

// содержать только одну строку информации за один сеанс.

if (!mysql_affected_rows ($link) )

{

$query = "INSERT INTO usageLog " .

" (visitor IP, page URL, referer_URL, ". "session_ID, session_views) ".

"VALUES ('$REMOTE_ADDR' , '$PHP_SELF', ".

"'$referer[0]‘,’$sessionID’,1)»;

$result = executeQuery($query);

}

}

return;

}

?>



Скопируйте исходный PHP-код приведенной выше функции и пользовательс — кой функции connectToDB () (служащей для установки соединения с СУБД

MySQL в начале функции recordPageHito) на свой компьютер, выгрузив архив

chptiOTipi3.zip из сайта издательства русскоязычной редакции этой книги (http :

//www. diasoft. kiev. ua). Страница chptiOTipi3.php (входящая в состав архива

chptiOTipi3.zip) содержит операторы, которые необходимо вставить в начало фай —

лов РНР-СТранИЦ ДЛЯ Организации Сеанса И ВЫЗОВа фуНКЦИИ recordPageHit() .

Глава10.РНР4 54 1





Обратите внимание, что функция recordPageHit() вызывает одну и ту же поль — зовательскую фуНКЦИЮ (executeQuery() , ВКЛЮЧенНуЮ В арХИВ ChptlOTipl3.zip ) как для обновления содержимого строки данных в таблице UsageLog, так и для вставки новой строки. При работе с СУБД MySQL для передачи на выполнение SQL-операторов (например, SELECT, INSERT, UPDATE, CREATE, DROP И Т. Д.) исполь —

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 113
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.152
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.64
  • 21.03.2011">Руководство по actionscript. часть 2, стр. 046
  • 17.06.2012">«Лаборатория Касперского» отметила сокращение количества спама
  • 30.07.2011">Несколько советов о том как сделать и раскрутить свой сайт
  • 13.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.91
  • 17.03.2011">Руководство по actionscript. часть 2, стр. 143
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 058
  • 06.03.2013">Ну просто очень вкусные булочки
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 047
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 048
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.41
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 138
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 120
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...