Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сбор пользователей с 2-х страниц...
 
 автор: ZetRider   (08.02.2008 в 20:44)   письмо автору
 
 

Привет, есть скрипт который отображает сколько пользователей сейчас на странице:

<?php

        $_usdata
="log/online.txt";
        
$_ustime_online=time();
        
$_uspast_time=time()-600;

        
$_usreaddata=fopen($_usdata,"r");
        
$_usdata_array=file($_usdata);
        
fclose($_usreaddata);

        if (
getenv('HTTP_X_FORWARDED_FOR'))
               
$_ususer_online getenv('HTTP_X_FORWARDED_FOR');
        else
             
$_ususer_online getenv('REMOTE_ADDR');

        
$_usd=count($_usdata_array);
        for(
$_usi=0;$_usi<$_usd;$_usi++)
                {
               list(
$_uslive_user,$_uslast_time)=explode("::","$_usdata_array[$_usi]");
               if(
$_uslive_user!=""&&$_uslast_time!=""):
               if(
$_uslast_time<$_uspast_time):
                        
$_uslive_user="";
                        
$_uslast_time="";
                endif;
                if(
$_uslive_user!=""&&$_uslast_time!="")
                        {
                        if(
$_ususer_online==$_uslive_user)
                                {
                                
$_usonline_array[]="$_ususer_online::$_ustime_online\r\n";
                                }
                        else
                                
$_usonline_array[]="$_uslive_user::$_uslast_time";
                        }
                endif;
                }

        if(isset(
$_usonline_array)):
        foreach(
$_usonline_array as $_usi=>$_usstr)
                {
                if(
$_usstr=="$_ususer_online::$_ustime_online\r\n")
                        {
                        
$_usok=$_usi;
                        break;
                        }
                }
        foreach(
$_usonline_array as $_usj=>$_usstr)
                {
                if(
$_usok==$_usj) { $_usonline_array[$_usok]="$_ususer_online::$_ustime_online\r\n"; break;}
                }
       endif;

        
$_uswritedata=fopen($_usdata,"w");
        
flock($_uswritedata,2);
        if(
$_usonline_array==""$_usonline_array[]="$_ususer_online::$_ustime_online\r\n";
        foreach(
$_usonline_array as $_usstr)
                
fputs($_uswritedata,"$_usstr");
        
flock($_uswritedata,3);
        
fclose($_uswritedata);

        
$_usreaddata=fopen($_usdata,"r");
        
$_usdata_array=file($_usdata);
        
fclose($_usreaddata);
        
$_usonline=count($_usdata_array);
        
        echo 
"На сайте: $_usonline чел.";

?>


как возможно сделать чтобы этот скрипт собирал сколько польщователей сидит на 2-х страницах и выводил сложеное число?...

К примеру, у меня скрипт стоит на главной, он пишет что тут 15 польщователей...
А мне нужно чтобы он плюсовал с количеством пользователей на другой страницу... на другой к примеру сидит 5 пользователей....

Нужно чтобы он вывел: На сайте: 20 польщователей...

Размещая етот скрипт на этих 2-х страницах и указывая один лог файл в котором хранится сколько польщователей... такое не прокатит.. :(


заранее спаибо, снова всех запутал :)

   
 
 автор: Unkind   (08.02.2008 в 20:50)   письмо автору
 
   для: ZetRider   (08.02.2008 в 20:44)
 

> есть скрипт который отображает сколько пользователей сейчас на странице
Я не вижу тут никакой привязки к странице. Данные сохраняются в "log/online.txt". Если код на нескольких страницах один и тот же, то это и есть подсчет онлайна по всем этим страницам, а не по каждой в отдельности.

P.S. Не используйте if( condition ): ... end if; Это затрудняет чтение кода.

UPD.
> Размещая етот скрипт на этих 2-х страницах и указывая один лог файл в котором хранится сколько польщователей... такое не прокатит..
Тогда нужно считать количество строк в нескольких файлах.

<?php
// ...

$files = array('file1.cnt''file2.cnt');

for(
$i 0$online 0$i count($files); $i++)
{
    
$online += count(file($files[$i]));
}

echo 
"Online: " $online "<br />\r\n";
?>


Хотя подобное делается гораздо лучше с помощью СУБД.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования