Плагиатим 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-адрес, либо, если с такого адреса уже заходили, отличается версия браузера или разрешение экрана. В принципе, накрутить такую систему – как два байта переслать, но ты ведь пишешь ее только для собственного использования и не собираешься обманывать самого себя, верно? |