Пишем гостевую книгу(текстовые счетчики)

Итак код, который необходимо будет вставить в страницу, на которой мы буде считать посетителей:

<? $agent="$REMOTE_ADDR"; $ugent=getenv('HTTP_USER_AGENT'); $agent=trim($agent); $ugent=trim($ugent); $agent="$agent|$ugent"; $time=time(); $oftime=$time-300; $den =date("H",$time); //Сперва считаем он-лайн посетителей: $aron=@file("online.txt"); $ton=0; foreach($aron as $key => $val) { $artext=@explode("#",$val); if($artext[0]>$oftime & $agent!=$artext[1] & $artext[1]!=""){ $newar[$ton]=$val; $ton=$ton+1;} if($agent==$artext[1] & $artext[0]>$oftime){$metod="xit";}} $newar[$ton]="$time#$agent# \r\n"; $fp=@fopen("online.txt","w"); fclose($fp); chmod ("online.txt", 0777); foreach($newar as $key => $val) { $fp=@fopen("online.txt","a"); fputs($fp,"$val"); fclose($fp);} $online=$ton; //Ну а теперь считаем всего и за сегодня: $count=@file("count.txt"); $count =@explode("#",$count); if($count[0]!=$den){$count[1]=0; $count[0]=$den;} //обнуляем счетчик в случае необходимости if($metod!="xit"){$count[1]=$count[1]+1; $count[2]=$count[2]+1;} $zapis="$count[0]#$count[1]#$count[2]#"; $fp=@fopen("count.txt","a"); fputs($fp,"$zap"); fclose($fp); $segodnja=$count[1]; $vsego=$count[2]; //Ну а теперь можно вывести результаты: print"Онлайн: $online
Сегодня: $segodnja
Всего: $vsego
"; ?>

Ну и теперь необходимо поставить папке со скриптом права доступа 777. Так как все операторы, которые принимают участие в этом скрипте я уже затрагивал, то просто расскажу в крации принцип работы:

1.Подсчет он-лайн посетителей: Первым делом определяем текущие время в секундах, браузер и ip адрес посетителя, затем сравниваем данные с имеющийся базой и в случае, если такой посетитель уже посещал эту страницу, обновляем время посещения. А заодно и удаляем оф-лайн посетителей (вернее просто не заносим их в новый массив, который мы в последствии запишем в файл – нашу базу данных он-лайн посетителей), далее создаем строку с данными о посетители, добавляем её к массиву и записываем этот массив в файл. Как видите – все просто!

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

Выход Far Cry 2
Источник: wapteam.ru

Советую также почитать: