Главная Контакты


  На сайте

  Java, JavaScript
  Документация Perl
  Документация PHP
  Документация ASP
  Новости сайта
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C
 


Perl для веб-мастера


Небольшие усовершенствования нашего счетчика
Итак, мы научились считать заходы на нашу страницу. Допустим, мы не хотим, чтобы файл count.txt со значениями счетчика лежал в директории cgi-bin. Давайте создадим на сайте отдельную директорию, назовем ее, например, mystat, куда и скопируем файл count.txt. Не забудьте назначить файлу права доступа 666.
Теперь надо в нашем скрипте указать новый путь к файлу count.txt. Помните строку:
$namefile="count.txt";
казалось бы, ненужную? Ведь в принципе имя файла можно было бы указать и непосредственно при его открытии. Зато теперь, когда нам понадобилось изменить путь к файлу, достаточно изменить только эту строку.
Добавим к названию файла полный путь к директории с файлами сервера и название директории, в которой этот файл у нас лежит. Например, если полный путь выглядит так:
/home2/your_domen/public_html/
добавим имя созданной нами директории и получим следующее:
$namefile="/home2/your_domen/public_html/mystat/count.txt";
Модернизируем. Что будет, если в браузере зайти на страницу со счетчиком и нажать "обновить"? Правильно - значение счетчика увеличится на единицу. Причем каждая новая загрузка страницы в браузер будет вызывать увеличение значения счетчика. Давайте научим наш счетчик отслеживать заходы подряд с одного IP-адреса и не засчитывать такие заходы. Для этого создадим файл с названием, например, ip.txt и положим его в ту же директорию mystat на сервере. Назначим ему права доступа 666. В этом файле мы будем хранить IP-адрес последнего посетителя, засчитанного счетчиком. Теперь осталось добавить соответствующую проверку в скрипт.
Прежде всего добавим переменную, содержащую путь к файлу:
$nameipfile="/home2/your_domen/public_html/mystat/ip.txt";
Теперь нам надо получить собственно IP-адрес посетителя. Содержится он в переменной $ENV{"REMOTE_ADDR"}, значение которой передается скрипту браузером посетителя вместе с запросом. Присвоим это значение переменной $ip:
$ip=$ENV{"REMOTE_ADDR"};
Теперь считаем из файла ip.txt значение последнего IP-адреса, сравним его с полученным. Если они совпадают, тогда не засчитаем заход (завершив работу скрипта), если же не совпадают - увеличим значение счетчика и запишем новое значение IP-адреса в файл ip.txt:
open (IPFILE, "$nameipfile");
$ipold = ;
close(IPFILE);
chomp ($ipold);
if ($ipold eq $ip) {
exit;
}
open (IPFILE, "$nameipfile");
print IPFILE "$ip";
close(IPFILE);

Другие статьи по теме:

- введение в perl
- Perl для чайников от ns
- почему я выбрал perl?
- использование библиотеки mime-base64
- Perl для веб-мастера


Голосование:
Чего Вы хотели бы видеть больше на сайте?

Статей, документации
Скриптов
Программ для вебмастера
Я не знаю



Другие голосования

Обмен кнопочками:



Приглашаем Вас обменяться кнопочками! Обращайтесь к администратору.


Новые статьи:


Наши партнеры:





2006-2024 © SMTI.RU
Главная страница | Связаться с нами