29.4.4. Счетчик количества посещений

We use cookies. Read the Privacy and Cookie Policy

29.4.4. Счетчик количества посещений

Создадим документ, в котором отображается счетчик количества посещений. Счетчик будет выдавать сообщение типа "you are the nth visitor to this site" ("вы являетесь n–м посетителем этого сайта"). Можно также отображать дату последнего изменения страницы.

Не забудьте поместить сценарий в каталог cgi?bin; вызовите его путем ввода hitcount.cgi.

$ pg hitcount.cgi

#!/bin/sh

#hitcount.cgi

#счетчик попыток доступа к страницам для html <cgi>

#файл счетчика должен иметь атрибуты

counter=../cgi?bin/counter

chmod 666 $counter

echo "Content?Type: text/html"

echo ""

read access < $counter

access=`expr $access + 1`

echo $access

echo $access >$counter

Как видно из приведенного кода, сценарий считывает файл ../cgi?bin/counter, присваивает его переменной access, добавляет к нему единицу, затем записывает результат обратно в файл /cgi?bin/counter.

Теперь создадим файл counter. Все, что требуется в данном случае, — поместить в этот файл начальный номер; в качестве начального номера будет использована единица. Итак, создайте файл counter, введите в него 1, затем сохраните файл и выйдите из него.

Поскольку этот файл будет использоваться любым пользователем, необходимо присвоить ему права владельца, группы и других пользователей.

$ chmod 666 counter

Теперь осталось создать файл с расширением .shtml и поместить его в корневой каталог Web, где обычно находятся другие документы HTML. Файл также может находиться в каталоге htdocs или html. Ниже приводится образец этого файла; не забывайте присваивать ему расширение .shtml.

$ pg main.shtml

<! main.shtml>

<! строка комментария >

<HTML>

<H4> Last modified: <!—-#echo var="LAST_MODIFIED" -->

</H4>

<HR>

<H1><CENTER> THE MAY DAY OPERATIONS CENTER </H1>

<H2>Stand?by to Stand?to

<HR>

This page has been visited <!—-#exec cgi="/cgi?bin/hitcount.cgi" -—> times

</CENTER>

</Н2>

<HR>

</HTML>

Последняя изменяемая переменная, также как и другие переменные, экспортируются с помощью SSI. Обратитесь к Web–узлу apache (www.apache.org) для получения полного описания всех дополнительных переменных, которые были экспортированы с помощью SSI.

Посмотрите на команду SSI:

This page has been visited <!-—#exec cgi="/cgi?bin/hitcount.cgi" --> times

Общий формат команды:

<!—-# команда аргумент= "значение" -->

В нашем случае для запуска cgi–сценария hitcount применяются следующие значения параметров:

   • команда — exec,

   • аргумент -cgi,

   • "значение" — имя вызываемого сценария.

В рассматриваемом случае файл конфигурации был изменен таким образом, что данная страница будет отображаться по умолчанию вместо страницы index.html. Но остается также возможность вызова файла с помощью указания полного пути.

Если требуется изменить страницу, заданную по умолчанию, отредактируйте файл srm.conf. При этом обеспечивается доступ к следующей записи:

DirectorуIndex

В данной строке находится имя файла index.html. Измените это имя для новой страницы, заданной по умолчанию. Не забудьте закрыть и перезапустить Web–сервер, чтобы изменения возымели эффект.

Для вызова сценария введите URL:

http: //<имя_сервера>/main.shtml

или

http://<имя_сервера>

если это страница, заданная по умолчанию.

На рис. 29.4 показан пример страницы, содержащей счетчик посещений; для просмотра приращения счетчика достаточно просто обновить страницу. Обратите внимание, каким образом отображается значение переменной last_modified.

Конечно, можно каждый день сбрасывать значение счетчика. Для этого нужно воспользоваться записью одиночной команды cron, которая отправляет в файл число 1.

Рис. 29.4. Страница HTML с простым счетчиком посещений