Приложение Д: размер, дата, счетчик, протокол посещений

Красносельский
Константин
Константинович

Компьютер и программы

Веб-дизайн

Справочники

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

Настройка файла .htaccess

Коды ошибки http сервера

Подстановочные символы и регулярные выражения

Спецификация файла robots.txt

SSI – Server Side Includes

Таблица кодировки символов кириллицы

Нестандартные символы в HTML

Вторая таблица символов HTML

MIME Types (типы файлов)

 

Советы начинающим

Как в PHP поместить enum в массив

Советы начинающим Веб-дизайнерам: Что, где и зачем.

Правила плохого тона

WEB-уловки

Камень предкновения: верстка таблицами или блоками?

Рекомендации по разработке веб сайта

 

Анализ WEB-конъюнктуры. Создание лучшего сайта и его раскрутка.

Анализ WEB-конъюнктуры

Предисловие

Приручение поисковых машин

Уровень документа - все гениальное просто

Благоустройство нор для поисковых червей или как водить пауков по нашей паутине

Ускорение индексации сайта

Если гора не идет к Магомету

Индекс цитирования

Что это такое и с чем его едят

Приобретение веса в глазах общественности

Послесловие

Последние замечания по интернет-раскрутке

 

Приложения

А: «Рекомендации лучших пауководов»

Краткий комментарий.

Советы специалистов поисковой системы Rambler.

Использование файлов robots.txt.

Часто задаваемые вопросы.

Советы специалистов поисковой системы Aport.

Регистрация сайта в Апорте.

Советы специалистов поисковой системы Yandex.

Добавление страниц

Индексирование

Положение страницы на выдаче

Поиск со своей страницы

Ответы на часто задаваемые вопросы

 

Б: «1000 сверх-сайтов Рунета»

1000 сверх-сайтов Рунета

 

В: «Сто наиболее популярных поисковых слов»

Сто наиболее популярных поисковых слов

 

Г: «Где это сделать?»

Где это сделать?

 

Д: «Практическое руководство!!!»

Краткий комментарий.

Окна, ссылки и меню.

Ссылки и окна. Внешний вид и внутреннее содержание.

Организация ссылок. Всевозможные оглавления.

Если вам не нравятся фреймы, значит, вы не умеете их готовить.

Меню из выпадающих списков (javascript и CSS).

Многоуровневое раскрывающееся меню (javascript и CSS).

Работа с базами данных.

Обработка баз данных браузером посетителя

Обработка баз данных сервером (PHP)

Взаимодействие с посетителем

Отправка писем с веб-страницы.

Формы

Методы форм.

Создание на сайте PHP голосования.

Регистрация и контроль посетителей (PHP).

Интерактивность материала.

Создание гостевой книги на PHP.

Удаление записей из текстовых баз (PHP).

Заргузка файлов на сервер по HTTP-протоколу (PHP).

Разное.

Псевдослучайные элементы (PHP, javascript).

Точное определение имени и версии браузера с помощью JavaScript, SSI или PHP

Клоакинг и технология «Входных дверей».

Отложенное выполнение и выполнение с заданным интервалом (javascript)

Информация о размере, дате, собственные счетчики и протоколы посещений

 

 

 

Консультации

Экспорт и импорт новостей

PHP chmod – права доступа к файлам

WEB 2.0 – миф, или реальность?

Давно забытый AJAX

Способы хранения веб-страниц: документы FrontPage или базы данных

Как заработать на своем сайте?

FTP клиент, как настроить Total Commander

Знак собаки @ и подавление ошибок в PHP

AJAX

AJAX с точностью до наоборот, или как научить AJAX сохранять историю в браузере

 

Мониторинг веб сайтов и анализ поисковых запросов

Документация по Веб-дизайну

Желающим скачать PHP скрипт или JavaScript

 

Литература и поэзия

Гуманитарные науки

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Хронология материалов

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Обращение к посетителям

Шрифт Font Шрифты Fonts скачать Скачать шрифты

Реферат по психологии религии логике информатике. рефераты контрольные курсовые работы скачать на халаву психология религия информатика халява логика контрольная курсовая работа Скачать рефераты

Создание web сайта на заказ Создание web сайта на заказ

Создание, разработка web сайта на заказ. WEB-design Создание веб сайтов (цены)

web Сайты, созданные Красносельским К. К. Веб-дизайн разработка сайтов на заказ. WEB-design Веб-сайты, созданные мной (потенциальным заказчикам)

Полезные ссылки Полезные ссылки

Красносельский К. К. Компьютер Windows DOS система реестр BIOS программы Веб-дизайн PHP Perl CSS HTML CGI Java JavaScript музыка поэзия стихи тексты песен Психология философия психоанализ психиатрия логика сознание разум мышление интуиция развитие человек реферат религия информатика Об авторе

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Статистика сайта

Показать фреймы

 

Web На сайте

 

 

 

ТаблицейБлоками.

Приложение Д: размер, дата, счетчик, протокол посещений

Последняя модификация: 10.08.2014 г

Страница загружена с адреса: http://webdesign.site3k.ru/conjuncture/append/d/info.html

Моя студия веб-дизайна

Информация о размере, дате, собственные счетчики и протоколы посещений

  1. Информация о размере
  2. Информация о дате
  3. Собственные счетчики
  4. Протоколы посещений

Информация о размере

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

Информация о размере в самом файле

Информацию о размере файла в самом файле можно вывести различными способами. Наиболее очевидный из них – с помощью JavaScript. Достаточно записать следующий код:

<SCRIPT LANGUAGE="JavaScript"><!-- 
document.writeln("<P>Размер файла: "+document.fileSize+" байт");
// --> </SCRIPT>

Однако этот метод обладает существенным недостатком: он работает только в Internet Explorer. Не менее важным является и то, что он не сработает, если в браузере отключен JavaScript.

Информация о размере в другом файле

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

<!--#config sizefmt="bytes" -->
<!--#fsize file="наименование.файла" -->

где наименование.файла – имя файла, информацию о размере которого требуется вывести (подробнее смотрите в  SSI). Если информацию о размере файла требуется вывести в этом же файле, вместо имени файла можно вставить переменную ${DOCUMENT_NAME}:

<!--#config sizefmt="bytes" -->
<!--#fsize file="${DOCUMENT_NAME}" -->

Такой способ удобен как шаблон. Его можно включать во все файлы без разбора, не утруждаясь написанием реального имени файла.

Значения, полученные через JavaScript и SSI, будут отличаться, так как SSI покажет размер файла на диске, а JavaScript размер закачанного файла с учетом того что, SSI-инструкции будут заменены другим содержимым.

Информация о дате

Информацию о дате последней модификации файла можно получить и вывести в самом файле или в отдельном файле (например, файле, содержащим на него ссылку). Последнее позволяет посетителю определить, изменилось ли содержимое с момента последнего просмотра (закачки) или нет и, стоит ли вновь задействовать ссылку, указывающую на этой файл.

Информация о дате последней модификации в самом файле

Информацию о дате последней модификации файла в самом файле можно вывести различными способами. Наиболее очевидный из них – с помощью JavaScript. Достаточно записать следующий код:

<SCRIPT LANGUAGE="JavaScript"><!-- 
document.writeln("<P>Последняя модификация: "+document.lastModified);
// --> </SCRIPT>

Этот метод работает практически во всех браузерах, однако он не сработает, если в браузере отключен JavaScript.

Информация о дате последней модификации в другом файле

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

<!--#config timefmt="%d.%m.%Y г" -->
<!--#flastmod file="наименование.файла" -->

где наименование.файла – имя файла, информацию о дате последней модификации которого требуется вывести (подробнее смотрите в  SSI). Если информацию о дате последней модификации файла требуется вывести в этом же файле, вместо имени файла можно вставить переменную ${DOCUMENT_NAME}:

<!--#config timefmt="%d.%m.%Y г" -->
<!--#flastmod file="${DOCUMENT_NAME}" -->

Такой способ удобен как шаблон. Его можно включать во все файлы без разбора, не утруждаясь написанием реального имени файла.

Собственные счетчики

Собственные счетчики сделать труднее, чем вывести информацию о размере файла, но простейший счетчик на PHP выглядит так:

Счетчик в самом файле

<!--#include virtual="/download.php?get=$DOCUMENT_NAME" -->

Данный код первой строкой запустит скрипт download.php из корневого каталога сайта и передаст ему имя файла, посещаемость которого следует считать.

Файл download.php при этом должен иметь следующий вид:

<?php 
  $counterdir = "counters";     // директория, где будут находиться файлы счетчики
  $file = fopen("$counterdir/$get.txt","a+");  // открываем счетчик загрузок на добавление
  flock($file,LOCK_EX); // ждем , пока не заблокируем файл
  @$count = fread($file, filesize("$counterdir/$get.txt"));  // читаем счетчик
  $count += 1;    // увеличиваем счетчик на 1
  ftruncate($file,0); // очищаем все содержимое файла
  fwrite($file, $count); // записывает результат в файл счетчика
  fflush($file); // сбрасываем все изменения на диск
  flock($file,LOCK_UN); // разблокируем файл
  fclose($file); // закрываем файл
  echo $count; // Показываем счетчик
?>

Счетчик рядом со ссылкой на этот файл

Все почти тоже, но есть некоторые отличия:

<a  href="/download.php?get=наименование.файла&path=полный_путь_к_странице_на_сервере">Скачать!!!</a> Закачено <!--#include virtual="/counters/наименование.файла.txt" --> раз(а).

То есть, обязательно требуется указать имя файла и полный путь к странице на сервере (вместо этого можно использовать функции basename и pathinfo).

Кроме того, отличия будут в файле download.php:

Файл download.php при этом должен иметь следующий вид:

<?php 
  $counterdir = "counters";     // директория, где будут находиться файлы счетчики
  if (file_exists("$path"))
  {
    header("location: $get"); // загружаем файл
    $file = fopen("$counterdir/$get.txt","a+");  // открываем счетчик загрузок на добавление
    flock($file,LOCK_EX); // ждем , пока не заблокируем файл
    @$count = fread($file, filesize("$counterdir/$get.txt"));    // читаем счетчик
    $count += 1;    // увеличиваем счетчик на 1
    ftruncate($file,0); // очищаем все содержимое файла
    fwrite($file, $count); // записывает результат в файл счетчика
    fflush($file); // сбрасываем все изменения на диск
    flock($file,LOCK_UN); // разблокируем файл
    fclose($file); // закрываем файл
  }
  else echo "<font size=2 color=red><center>Невозможно найти файл <b>$path</b>";
?>

В этом варианте появилась проверка наличия файла (ссылка ведь может быть не верна) и дополнительная строка: «header("location: $get");», необходимая для того, чтобы помимо загрузки скрипта, произошла и загрузка требуемого файла. Зато отображение рузультатов счетчика перененесено на SSI-инструкцию <!--#include virtual="/counters/наименование.файла.txt" -->, так как отображение количества загрузок должно происходить независимо от запуска скрипта.

Универсальный счетчик посещаемости и загрузки

Оба метода можно совместить, чтобы не делать два различных скрипта-счетчика, если в команду вызова скрипта добавить третий параметр:

<!--#include virtual="/download.php?get=$DOCUMENT_NAME" -->

Для отображения счетчика в самом файле и

<a href="/download.php?get=наименование.файла&path=относительный_путь_к_странице&load=1">Скачать!!!</a> Закачено <!--#include virtual="/counters/наименование.файла.txt" --> раз(а).

Для счетчика рядом со ссылкой.

Файл download.php при этом должен иметь следующий вид:

<?php 
  function ridwrite(){
     global $get,$count; // укажем что, используются общие переменные, а не локальные копии
     $counterdir = "counters";     // директория, где будут находиться файлы счетчики
     $file = fopen("$counterdir/$get.txt","a+");  // счетчик загрузок
     flock($file,LOCK_EX); // ждем , пока не заблокируем файл
     @$count = fread($file, filesize("$counterdir/$get.txt")); // читаем счетчик
     $count += 1;    // увеличиваем счетчик на 1
     ftruncate($file,0); // очищаем все содержимое файла
     fwrite($file, $count); // записывает результат в файл счетчика
     fflush($file); // сбрасываем все изменения на диск
     flock($file,LOCK_UN); // разблокируем файл
     fclose($file); // закрываем файл
  }

  if (@$load==1){ // загружаем файл, если требовалась загрузка, иначе показываем счетчик
     if (file_exists(realpath("$path"))){
        ridwrite();
        header("location: $path");
     }
     else echo "<font size=2 color=red><center>Невозможно найти файл <b>http://".$_SERVER["SERVER_NAME"]."/$path</b></center>";
  }else{
     ridwrite();
     echo $count;
  }
?>

Естественно, что вместо включения скрипта из отдельного файла, можно включить скрипт в саму страницу. Можно изменить и многое другое – здесь предложен только один из вариантов. Например, для закачки файлов с другого сайта, необходимо убрать проверку file_exists, да и для своего сайта, она не обязательна.

Протоколы посещений

Для отслеживания посещений страниц можно создать следующий PHP-скрипт:

<?php 
@$logfile="$DOCUMENT_ROOT/log.txt";
@$file = fopen($logfile,"a+");
if (@$file){
   flock($file,LOCK_EX); // ждем , пока не заблокируем файл (если нужно)
   $accessdate = date("d-m-Yг. H:i:s"); // Дата и время посещения
   $referer = urldecode(@$HTTP_REFERER); // Страница, с которой совершен переход (если была)
   $REQUEST = urldecode(@$REQUEST_URI); // Посещенная страница
   $USER_AGENT = @$HTTP_USER_AGENT;
   $SERVERNAME = @$SERVER_NAME; 
   fwrite($file, "$accessdate\r\n$referer -> http://$SERVERNAME$REQUEST\r\n$USER_AGENT\r\n---------------------------------------\r\n");
   fflush($file); // сбрасываем все изменения на диск
   flock($file,LOCK_UN); // разблокируем файл
   fclose($file);
   if (filesize($logfile) >= 100000) {
      $header="From: АДРЕС\nReply-To: АДРЕС";
      $header.="\nContent-type: text/plain; charset=\"windows-1251\"";
      $file=fopen($logfile,"r");
      $text=fread($file, filesize($logfile));
      fclose($file);
      unlink($logfile);
      mail("АДРЕС","log $SERVERNAME",$text,$header);
   }
}else{
      $header="From: АДРЕС\nReply-To: АДРЕС";
      $header.="\nContent-type: text/plain; charset=\"windows-1251\"";
      $text='Не могу открыть лог-файл на ' .@$SERVERNAME;
      mail("АДРЕС","=?windows-1251?B?". base64_encode("Внимание! ОШИБКА"). "?=",$text,$header);
}
?>

Данный скрипт, если сможет (файл не блокируется и может оказаться недоступным для записи, но это не принципиально), запишет блок, состоящий из даты и времени запроса страницы, имени страницы, с которой совершен переход (если на страницу не зашли прямо набрав ее адрес), имени запрошенной страницы и агента, запрашивающего (это может быть не только браузер, но и поисковый робот или какая-то сайтокачалка) в файл log.txt. Для удобства чтения, блок отделится от следующего строкой тире. При достижении размера 100 тысяч байт, файл log.txt будет отправлен вам по почте на указанный АДРЕС с темой «log» и стерт с сервера для того, чтобы протокол не разрастался до бесконечности.

Скрипт можно включить в страницу напрямую, либо командой

<!--#include virtual="/log.php" -->

 

 

Комментарии к странице

 

 

 

размер дата счетчик посещений и загрузок протокол посещений JavaScript SSI PHP Script скрипт JavaScript SSI скачать PHP скрипт бесплатно примеры PHP скачать скрипт


На главную страницу сайта размер дата счетчик посещений и загрузок протокол посещений JavaScript SSI PHP Script скрипт JavaScript SSI скачать PHP скрипт бесплатно примеры PHP скачать скрипт