Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #66, ИЮНЬ 2004 г.

Плагиатим SpyLog

Никита Кислицин

Xakep, номер #066, стр. 066-116-2


JS-код счетчика

var height=0; var width=0;

if (self.screen) {/* Если есть такой объект, то получаем сведения из его свойств */

width = screen.width;

height = screen.height; }

else if (self.java) { /* Случай для NN */

var jkit = java.awt.Toolkit.getDefaultToolkit();

var scrsize = jkit.getScreenSize();

width = scrsize.width;

height = scrsize.height; }

/* Вызываем скрипт, обрабатывающий данные */

document.writeln("<img src='http://localhost/index.html?width=",width,"&height=",height,"&depth=",screen.ColorDepth,"'>");

//-->

Делай два

Теперь, когда мы научились передавать на сервер сведения о посетителях, настал момент истины – пора запускать редактор PHP-кода :). Прежде всего нужно создать несколько таблиц – чтобы не занимать в журнале слишком много места, я приведу лишь описание самой главной таблицы visitors с информацией о посетителях: ip varchar(15) not null primary_key, browser varchar(20), width int, height int, depth int, num int, datte date. Более подробная спецификация всех структур есть на диске – там лежит файл count.sql, в котором находятся все запросы по созданию таблиц, а также конечная версия системы статистики.

Давай напишем функцию, которая добавляет информацию о пользователе в таблицу visitors с информацией о посетителях:

Функция, добавляющая инфу о посетителе

function AddVisit($ip, $browser, $width=0, $height=0, $depth=0) {

$sel=mysql_query("select * from visitors where datte='$date' and ip='$ip' and browser='$browser' and height='$height'");

$nn=mysql_num_rows($sel);

if($nn>0) { mysql_query("update visitors set num=num+1"); } else {

$add=mysql_query("insert into visitors('$ip', '$browser', '$width', '$height', '$depth', '$date')"); }

}

Ну что ж, коллега, поздравляю – мы написали половину системы! :) Теперь, обрабатывая информацию о посетителе страницы, из головного скрипта следует вызвать функцию AddVisit следующим образом: AddVisit($HTTP_REMOTE_ADDR, $HTTP_USER_AGENT, $_GET[width], $_GET[height], $_GET[depth]). Как легко заметить по коду функции, она довольно наивно определяет уникальность посетителя: посетитель считается уникальным, если у него оригинальный IP-адрес, либо, если с такого адреса уже заходили, отличается версия браузера или разрешение экрана. В принципе, накрутить такую систему – как два байта переслать, но ты ведь пишешь ее только для собственного использования и не собираешься обманывать самого себя, верно?

Назад на стр. 066-116-1  Содержание  Вперед на стр. 066-116-3