Показать сообщение отдельно
Старый 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 вне форума   Ответить с цитированием