Просмотр полной версии : Щётчик посещений
DimanLin
27.11.2008, 11:53
Нужен счётчик.
Всё что он должен уметь выводить, это количество пользователей за сутки. Стандартные счётчики Rembler 100, Top 100 и.т.п не подходят. поскольку картинка мне не нужна. Нужно только число посетителей за сутки и это число не должно формироваться в виде картинки.
Pavel Antonov
27.11.2008, 13:36
http://gramota.ru/slovari/dic/?lop=x&efr=x&zar=x&ag=x&ab=x&sin=x&lv=x&az=x&pe=x&word=%F1%F7%E5%F2%F7%E8%EA
Alex Podusov
27.11.2008, 16:51
Pavel Antonov :D
DimanLin с 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
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.php?t=6311&highlight=BOM
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot