Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Счетчики посещений.

div.main {margin-left: 20pt; margin-right: 20pt}

Счетчики посещений.

Пример 1.

Рассмотрим простейший текстовый счетчик,который подсчитывает общее количество посещений и выводит результат на экран.
Определяем путь к файлу,в котором будут храниться показания счетчика: #!/usr/local/bin/perl #textcounter $file="counter1.txt";

Открываем файл на чтение,инициализируем счетчик и увеличиваем его значение на единицу: open (STAT,"$file"); $count=; close (STAT); $count++;

Открываем файл счетчика на запись и записываем новое значение: open (STAT,">$file"); print STAT $count; close (STAT);

И,наконец,выводим показания счетчика на экран: print "Content-type:text/htmlnn"; print $count;

Если сохранить данный код в файле counter1.cgi и открыть его в браузере,то на экране мы увидим 1.Если перезагрузить страницу,показание счетчика увеличится на 1. Выводить результаты счетчика можно как кому подскажет фантазия-или просто в виде числа,или вставить его в таблицу,ипользовав в качестве бэкграунда какой-нибудь фон и т.д. Вставить счетчик в html-страницу можно,используя SSI.Для этого в том месте,где предполагается использовать счетчик,вставьте следующий код:

<!--#exec cgi="path/to/counter1.cgi" --> Листинг примера 1.
#!/usr/local/bin/perl #textcounter $file="counter1.txt"; open (STAT,"$file"); $count=; close (STAT); $count++; open (STAT,">$file"); print STAT $count; close (STAT); print "Content-type:text/htmlnn"; print $count;

Посмотреть работу

Пример 2.

Усложним предыдущий пример,например,добавив запись в лог-файл,для сбора статистики и сделаем так,чтобы счетчик выводил результат в виде 6 цифр с заполнением впереди нулями,к примеру так:000143 Предыдущая часть кода останется без изменений,только добавим переменную для количества цифр результата. #!/usr/local/bin/perl #textcounter $file="counter2.txt"; $dig_num=6; open (STAT,"$file"); $count=; close (STAT); $count++; open (STAT,">$file"); print STAT $count; close (STAT);

Далее добавляем следующее: open (DATA,">>counter.log"); $string=join ('&',$ENV {'REMOTE_ADDR'},$ENV {'REMOTE_HOST'},scalar localtime); print DATA "$stringn"; close (DATA);

В этом случае скрипт создаст файл counter.log и всякий раз при перезагрузке страницы будет записывать данные о пользователе-его IP-адрес,имя хоста и время посещения.
Думаю,с этим все понятно.Теперь определим,как скрипт будет выводить результат: @digits=split (//,$count); #Читаем строку файла счетчика в массив и разбиваем на цифры. $number=@digits; #Подсчитываем количество цифр. if ($number < $dig_num) { $diff=$dig_num-$number; #Сравниваем количество цифр в строке с заданным. $count="0"x$diff.$count; } else { $count=$count; } print "Content-type:text/htmlnn"; #Выводим результат print "$countn";

Листинг примера 2.
#!/usr/local/bin/perl #textcounter $file="counter2.txt"; $num_dig=6; open (STAT,"$file"); $count=; close (STAT); $count++; open (STAT,">$file"); print STAT $count; close (STAT); open (DATA,">>counter.log"); $string=join ('&',$ENV {'REMOTE_ADDR'},$ENV {'REMOTE_HOST'},scalar localtime); print DATA "$stringn"; close (DATA); @digits=split (//,$count); $number=@digits; if ($number < $dig_num) { $diff=$dig_num-$number; $count="0"x$diff.$count; } else { $count=$count; } print "Content-type:text/htmlnn"; print $count;

Посмотреть работу Скачать

Пример 3.

Далее приведу пример более сложного счетчика,который не только пишет в лог,но и подсчитывает количество посещений общее и за сегодняшний день.Также имеется возможность просмотра статистики через Интернет.Это может делать только хозяин счетчика,вводя свой пароль.
Начальная часть скрипта без изменений. #!/usr/local/bin/perl #textcounter $file="counter.txt"; open (STAT,"$file"); $count=; close (STAT); $count++; open (STAT,">$file"); print STAT $count; close (STAT);

Далее выводим текущее время в более читабельном формате.Оно будет использоваться при определении количества посещений за сегодня. ($sec,$min,$hour,$day,$month,$year,$day2)=localtime(time); if ($hour>counter.log"); $string=join ('&',$ENV {'REMOTE_ADDR'},$ENV {'REMOTE_HOST'},scalar localtime); print DATA "$stringn"; close (DATA);

Посмотреть работу Скачать

Примеров можно привести множество.Наверное,каждый веб-программер пишет счетчики по-своему. Но я думаю,что приведенные примеры помогут вам понять основной принцип написания счетчиков посещений и создать свой собственный,подобных которому нет :)))



  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте