Пишем гостевую книгу(текстовые счетчики)
Итак код, который необходимо будет вставить в страницу, на которой мы буде считать посетителей:
<?
$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