Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Щётчик посещений (http://forum.typo3.ru/showthread.php?t=7221)

DimanLin 27.11.2008 11:53

Щётчик посещений
 
Нужен счётчик.

Всё что он должен уметь выводить, это количество пользователей за сутки. Стандартные счётчики Rembler 100, Top 100 и.т.п не подходят. поскольку картинка мне не нужна. Нужно только число посетителей за сутки и это число не должно формироваться в виде картинки.

Pavel Antonov 27.11.2008 13:36

http://gramota.ru/slovari/dic/?lop=x...E5%F2%F7%E8%EA

Alex Podusov 27.11.2008 16:51

Pavel Antonov :D

DimanLin с php дружим? Да, и ещё: пользователей (зарегистрированных), или посетителей? Если посетителей - вписываем несколько строк на php прямо в шаблон. что-то типа
PHP код:

<?php
# Открываем файл для чтения и перезаписи. 
# если не существует - создаем
$handle fopen("/fileadmin/_temp_/count.txt","r");
# Читаем его содержимое в строку
$buffer fgets($handle);
fclose($handle);
# Данные в файле: дата::счетчик
$arr explode ("::"$buffer);
# Если файл только что создан и пустой - создаем данные
if (count($arr) != 2) { $arr[0] = date(); $count 1$arr[1] = 1; }
else 
  {
  
# читаем данные, если наступил новый день - обновляем данные
  
if (date() > $arr[0]) { $arr[0] = date(); $count 1$arr[1] = 1; }
  else { 
$count = ++$arr[1]; }
}
# записываем новые данные в файл
$buffer implode("::",$arr);
$handle fopen("/fileadmin/_temp_/count.txt","w");
fwrite($handle,$buffer);
fclose($handle);
echo 
$arr[1];
?>

последней строкой выводится количество посетителей за текущий день.
Возможно где-то и ошибся в коде, писал на вскидку, скорее всего его можно и подсократить.

Valery Romanchev 27.11.2008 19:07

еще можно поставить что-то типа
ws_stats
и выводить количество посетителей запросом (это конечно будет медленно)

DimanLin 28.11.2008 16:56

Pavel Antonov двойка у меня по русскому, еле на три вытянул. Сори за рябь в глазах

Alex Podusov Да, на php лялякую :). Это для всех пользователей. Прямо в шаблон(верстку) не получилось, выводит весь код в браузер.

К нашим баранам:
Написал вот такой код. Отличия только работа с оъбектом и куками.
вставляю в шаблон вот таким образом:

lib.myphp = PHP_SCRIPT_EXT
lib.myphp {
file = fileadmin/php/num.php
}

Вот что получаю на странице:
Warning: Cannot modify header information - headers already sent by (output started at /home/пользователь/поддомен.домен.ru/typo3_src-4.2.3/typo3/sysext/cms/tslib/index_ts.php:512) in /home/пользователь/поддомен.домен.ru/docs/fileadmin/php/num.php on line 51

Строка 51 это: setcookie($this->name_key, $this->day);
Как быть? Может быть расширение какое использовать? Тажа проблема не возникнет?

PHP код:

<?php
            
class schetchik
            
{
                function 
__construct()
                {
                    
$handle fopen($_SERVER[DOCUMENT_ROOT] . "/fileadmin/_temp_/count.txt","r");
                    
$buffer fgets($handle);
                    
fclose($handle);
                    
$arr explode("::",$buffer);
                    if(
is_array($arr))
                    {
                        if(
$arr[0] == date("j"))
                        {
                            
$this->day = (int) $arr[0];
                            
$this->num = (int) $arr[1];
                            
$this->write_flag 0;
                        }
                        else
                        {
                            
$this->day date("j");
                            
$this->num 0;
                            
$this->write_flag 1;
                        }
                        
                        
                    }
                    else
                    {
                        
                        
$this->day date("j");
                        
$this->num 0;
                        
$this->write_flag 0;
                    }

                    
$this->user_day $_COOKIE[$this->name_key];
                    
$this->location $_SERVER[DOCUMENT_ROOT];
                }

                private 
$location;
                private 
$day;       // Сегодняшний день
                
private $num;       // Посетителей на сайте за текущий день
                
private $name_key "a9sd87f9zx8v7z8x7v8x8ssss87";
                private 
$user_day;  // День который прописан у пользователя в куках
                
private $write_flag;

                function 
view()
                {
                    
                    if(empty(
$this->user_day))
                    {
                        
setcookie($this->name_key$this->day);
                        
$this->add_num();
                    }
                    else
                    {
                        if(
$this->user_day != date("j"))
                        {
                              
setcookie($this->name_key$this->day);
                              
$this->add_num();
                        }
                    }
                    echo 
$this->num "<br />";
                }

                function 
add_num()
                {
                    
$this->num++;
                    
$this->write_flag 1;
                }

                 function 
__destruct()
                 {
                     if(
$this->write_flag == 1)
                     {
                        
$handle fopen($_SERVER[DOCUMENT_ROOT] . "/fileadmin/_temp_/count.txt","w");
                        
fwrite($handle,$this->day "::" $this->num);
                        
fclose($handle);
                     }
                 }
            }

            
$obj = new schetchik;
            
$obj->view();
        
?>


Alex Podusov 28.11.2008 17:39

кодировка файла с кодом php - utf-8 without BOM? пустых строчек в нем нет за пределами <?php ... ?> ?
область замаплена внутри тэга <body>...</body>?

была та же проблема, когда файл с кодом php сохранил просто в utf-8. Вот этот самый BOM мне всё и портил ))
http://forum.typo3.biz/showpost.php?p=21391&postcount=9
http://forum.typo3.biz/showthread.ph...&highlight=BOM


Часовой пояс GMT +4, время: 17:37.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot