Опубликован: 08.05.2007 | Доступ: свободный | Студентов: 12883 / 3013 | Оценка: 4.13 / 3.77 | Длительность: 12:58:00
Дополнительный материал 1:

Приложение PHP E-Commerce

< Лекция 12 || Дополнительный материал 1: 123456789101112 || Дополнительный материал 2 >

Подсчет посетителей

Пока мы обсуждаем тему объекта сеанса, давайте рассмотрим процедуру, которая активно использует его возможности, – подсчет посетителей. Объект сеанса в действительности предопределяет "посетителя", поскольку поддерживает сеанс для каждого человека в течение 20 минут с момента последнего обращения посетителя к странице. Поэтому простое существование сеанса является доказательством присутствия посетителя. Итак, чтобы подсчитать посетителей, необходимо только добавлять 1 к счетчику посетителей, когда запускается сеанс.

Создание счетчика посетителей

Прежде всего, необходимо создать счетчик посетителей и инициализировать его значение. Обычно начальное значение счетчика задается как 0, но если есть желание произвести впечатление на посетителей или инвесторов, то можно инициализировать его значением 1000000. Счетчик может быть простым текстовым файлом, содержащим значение счетчика. Так как мы работаем в среде базы данных, то можно также создать таблицу. В этой таблице будет только одна запись с одним полем, в котором накапливается счетчик посетителей.


Здесь мы создаем таблицу с именем Counters (так как необходимо подумать о некоторых дополнительных счетчиках, которые понадобятся позже). Таблица содержит одно поле с именем VisitorCounter, определенное как числовое поле. В таблице имеется только одна эта запись. Теперь все готово к подсчету посетителей.

Увеличение значения счетчика посетителей

Когда посетитель прибывает на сайт, необходимо увеличить счетчик посетителей на 1. Мы узнаем, что прибыл посетитель, когда PHP создает сеанс и создает объект сеанса для этого человека. Поэтому мы создаем глобальную переменную сеанса с именем "Count" ( $_SESSION[Count] ) и будем увеличивать ее значение на 1 всякий раз, когда запускается новый сеанс. Это значение будет использоваться для увеличения VisitorCounter.

Чтобы не считать дважды одного и того же пользователя во время следующего сеанса, можно поместить код обновления счетчика внутрь оператора if, который проверяет, что переменной Count уже было присвоено значение. Если Count не определено, то это указывает на новый сеанс или на нового пользователя и удовлетворяется условие для обновления счетчика Visitor. Если Count имеет значение, то текущий сеанс пользователя уже был учтен и блок обновления игнорируется.

Так как home.php является "входом" на сайт, давайте вернемся к файлу home.php и добавим необходимый код для учета посетителей:

session_start();

   if (!$_SESSION[Count])
   {
   $_SESSION[Count] = 1;
   $conn = odbc_connect('Driver={Microsoft Access Driver 
   (*.mdb)};DBQ=c:\inetpub\wwwroot\PHPTutorial\Ecommerce\databases\ecommerce.mdb','','');
   $sql = "UPDATE Counters SET VisitorCounter = VisitorCounter + $_SESSION[Count]";
   $rs = odbc_exec($conn, $sql) 
   odbc_close($conn);
   }

Мы соединяемся и открываем таблицу Counters и добавляем 1 в поле VisitorCounter. Это действие происходит всякий раз, когда кто-то новый приходит на сайт. ПРИМЕЧАНИЕ: не забудьте сделать вызов функции session_start() перед проверкой статуса переменной сеанса Count. Если сеанс не запущен, $_SESSION[Count] не будет опознаваться как переменная сеанса, и оператор if будет выполняться каждый раз при перезагрузке страницы. Другими словами счетчик будет увеличиваться всякий раз, когда обновляется страница, а не тогда, когда создается новый сеанс.

Использование оператора SQL UPDATE

Использованный выше оператор SQL UPDATE имеют следующую общую форму:

UPDATE TableName SET FieldName1 = expression1 [,FieldName2 = expression2] ...

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

Вывод счетчика посетителей

Счетчик посетителей выводится на странице home.php. Для считывания и вывода значения счетчика используется следующий сценарий:

<?php
$conn = odbc_connect
  ('Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\PHPTutorial\
     Ecommerce\databases\ecommerce.mdb','','');
$sql = "SELECT VisitorCounter FROM Counters";
$rs = odbc_exec($conn, $sql);
$Counts = odbc_result($rs,VisitorCounter);
echo "Вы являетесь $Counts посетителем с 12/2006";
?>

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

< Лекция 12 || Дополнительный материал 1: 123456789101112 || Дополнительный материал 2 >
Максим Матросов
Максим Матросов
Наталья Джабасова
Наталья Джабасова