Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 27.11.2008, 11:53   #1
DimanLin
Продвинутый
 
Регистрация: 19.10.2008
Сообщений: 47
По умолчанию Щётчик посещений

Нужен счётчик.

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

Последний раз редактировалось DimanLin; 27.11.2008 в 15:53
DimanLin вне форума   Ответить с цитированием
Старый 27.11.2008, 13:36   #2
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

http://gramota.ru/slovari/dic/?lop=x...E5%F2%F7%E8%EA
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 27.11.2008, 16:51   #3
Alex Podusov
Senior Member
 
Аватар для Alex Podusov
 
Регистрация: 19.06.2008
Адрес: Сергиев Посад
Сообщений: 278
Отправить сообщение для Alex Podusov с помощью ICQ
По умолчанию

Pavel Antonov

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];
?>
последней строкой выводится количество посетителей за текущий день.
Возможно где-то и ошибся в коде, писал на вскидку, скорее всего его можно и подсократить.

Последний раз редактировалось Alex Podusov; 28.11.2008 в 11:30
Alex Podusov вне форума   Ответить с цитированием
Старый 27.11.2008, 19:07   #4
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

еще можно поставить что-то типа
ws_stats
и выводить количество посетителей запросом (это конечно будет медленно)
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 28.11.2008, 16:56   #5
DimanLin
Продвинутый
 
Регистрация: 19.10.2008
Сообщений: 47
По умолчанию

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();
        
?>
DimanLin вне форума   Ответить с цитированием
Старый 28.11.2008, 17:39   #6
Alex Podusov
Senior Member
 
Аватар для Alex Podusov
 
Регистрация: 19.06.2008
Адрес: Сергиев Посад
Сообщений: 278
Отправить сообщение для Alex Podusov с помощью ICQ
По умолчанию

кодировка файла с кодом 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
Alex Podusov вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счетчики посещений Denis Lebedev Общие вопросы 1 21.05.2005 16:53
Счетчики посещений в TYPO-3 сайте Соколов Максим Юрьевич Общие вопросы 2 21.05.2005 05:52


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория