начнем-с скрипт-копилку для новичков делать? кому не лень, присоединяйтесь. комментарии в коде желательны.
во-первых скрипты тут будут малость сырые - чтоб место для фантазии оставалось.
во-вторых маленькие, каждый для одной задачи.
в-третьих без использования БД, либо две версии, т.к. надо разбираться со всем постепенно.
банальный скрипт, позволяющий в потенциале многое, но в первую очередь разобраться в базовых средствах PHP.
лучше всех счетчиков из учебников - потому что картинка нам нафиг не нужна, как раз чаще счетчик с картинкой ставят для получения информации о посетителях. в крайнем случае если надо будет и к этому нетрудно прикрутить графический вывод.
задача: собираем инфу по посетителям: запрошенные страницы и строка параметров, адрес, клиент, был ли пользователь раньше
используем: работу с глобальным массивом $_SERVER, чтение файла в массив, перезапись файла, установку куки, генерацию уникального идентификатора, кодирование и декодирование base64
<?php // минимальный конфиг $logfile = $_SERVER['DOCUMENT_ROOT'].'/userlogger.csv'; // задаем имя файла для лога. $cookname = 'REQUEST_ID'; // имя куки $cooktime = 7; // дни жизни куки
// сохраняем в переменных нужные нам вещи $request_time = date(Y.'.'.M.'.'.d.' '.G.':'.i.':'.s); // текущее время на сервере $request_UA = $_SERVER['HTTP_USER_AGENT']; // юзер-агент клиента $request_IP = $_SERVER['REMOTE_ADDR']; // айпишник $request_string = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; // строка запроса полностью if (!$request_cookie = $_COOKIE[$cookname]) {$request_cookie = '';} // кука если есть $request_id = uniqid(); // уникальный айди запроса $cookset = base64_encode($request_id); // в куку будем писать кодированный айди
// читаем в массив что есть в логе и дописываем еще строку с инфой по текущему запросу $temp = file($logfile); // очень удобная функция, чтоб не использовать fopen+filesize+fclose (но удобна лишь для случая когда требуется полностью считать файл, не дополняя его) // порядок полей в лог-файле $log_write[] = $request_id; // айди запроса $log_write[] = $request_time; // время запроса $log_write[] = $request_string; // запрос $log_write[] = $request_IP; // адрес $log_write[] = $request_UA; // юзер-агент $log_write[] = base64_decode($request_cookie); // декодированное значение куки = айди предыдущего запроса этого посетителя $log_write = implode('^',$log_write); // объединяем все в строку с разделителем ^ $temp[] = $log_write; // добавляем эу строку последней в массив лога
// сохраняем лог $log = fopen($logfile,'w'); // открыли файл, стерев его foreach($temp as $tmp) {fwrite($log,trim($tmp)."n");} // каждый элемент массива записали в строку fclose($log); // закрыли лог ?>
пример использования:
обзываем этот файл logger.inc.php и кладем куда-нибудь. в файлах, обращение к которым требуется отслеживать, пишем <?php include_once(путь_к_этому_файлу); ?>
создаем пустой лог-файл (по умолчанию это userlogger.csv в корне сайта), ставим ему права 0777 (-rwxrwxrwx)
для просмотра можно качать этот файл к себе и открывать экселем... можно блокнотом... а можно написать небольшой просмотрщик (который выложу, если будет не лень).
возможное расширение функциональности:
+ вместо файла сохранять данные в БД
+ отсылка отчета на мейл
+ фильтр, защищающий от слишком быстрого разрастания лога
+ картинка-счетчик на основании лога
—————————————--
в его результатах очень интересно наблюдать подобные строки:
47947b4bd737b^2008.Jan.21 14:00:27^denton.msk.ru/CSShelp/?list=http%3A%2F%2Flnx.sarapica.net%2Fart%2Fufo%2Fuco%2F^69.61.61.146^Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)^ 47947b4ca274b^2008.Jan.21 14:00:28^denton.msk.ru/CSShelp/?list=http%3A%2F%2Fwww.sfolly.net%2Fchat%2Fdata%2Fprivate%2Fchat%2Fasaz%2Fodofe%2F^69.61.61.146^Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)^ 47947b51987cc^2008.Jan.21 14:00:33^denton.msk.ru/files/?showallfiles=http%3A%2F%2Fwww.ce-cioceoforum.com%2Ftalk%2Ft1%2Froda%2Filubov%2F^69.61.61.146^Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)^ 47947b5487c46^2008.Jan.21 14:00:36^denton.msk.ru/files/?showallfiles=http%3A%2F%2Fsinzinuri.com%2Fimsi%2Fdb%2Fpic%2Fbezefi%2Fugoye%2F^69.61.61.146^Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)^
и потом блочить таких мегакрякеров по ипе, выдавая им что-нибудь вкусное типа "добро пожаловать в админ-панель". или просто нецензурно посылать, зависит от воображения
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
D.S.Denton
начнем-с скрипт-копилку для новичков делать? кому не лень, присоединяйтесь. комментарии в коде желательны.
во-первых скрипты тут будут малость сырые - чтоб место для фантазии оставалось.
во-вторых маленькие, каждый для одной задачи.
в-третьих без использования БД, либо две версии, т.к. надо разбираться со всем постепенно.
банальный скрипт, позволяющий в потенциале многое, но в первую очередь разобраться в базовых средствах PHP.
лучше всех счетчиков из учебников - потому что картинка нам нафиг не нужна, как раз чаще счетчик с картинкой ставят для получения информации о посетителях. в крайнем случае если надо будет и к этому нетрудно прикрутить графический вывод.
задача: собираем инфу по посетителям: запрошенные страницы и строка параметров, адрес, клиент, был ли пользователь раньше
используем: работу с глобальным массивом $_SERVER, чтение файла в массив, перезапись файла, установку куки, генерацию уникального идентификатора, кодирование и декодирование base64
пример использования:
обзываем этот файл logger.inc.php и кладем куда-нибудь. в файлах, обращение к которым требуется отслеживать, пишем <?php include_once(путь_к_этому_файлу); ?>
создаем пустой лог-файл (по умолчанию это userlogger.csv в корне сайта), ставим ему права 0777 (-rwxrwxrwx)
для просмотра можно качать этот файл к себе и открывать экселем... можно блокнотом... а можно написать небольшой просмотрщик (который выложу, если будет не лень).
возможное расширение функциональности:
+ вместо файла сохранять данные в БД
+ отсылка отчета на мейл
+ фильтр, защищающий от слишком быстрого разрастания лога
+ картинка-счетчик на основании лога
—————————————--
в его результатах очень интересно наблюдать подобные строки:
и потом блочить таких мегакрякеров по ипе, выдавая им что-нибудь вкусное типа "добро пожаловать в админ-панель". или просто нецензурно посылать, зависит от воображения
Link to comment
Share on other sites
12 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.