Автор Тема: счетчик  (Прочитано 4792 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн qik

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 265
  • +0/-0
  • 0
    • Просмотр профиля
    • http://zapostil.ru/
счетчик
« : 06 Июля 2002, 02:02:07 »
нужен графический счетчик на php который показывает:
1. кол-во всех посетителей
2. кол-во сегодня
3. сколько сейчас на сайте
.........................................     можно с mysql.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
счетчик
« Ответ #1 : 08 Июля 2002, 08:49:46 »
Все просто:
1) передаёшь в запросе ид\'шник.
2) Ищешь в базе.
3) Инкименируешь (если у юзера, вызвавшего другой IP)
4) Рисуешь на картинке и вываливаешь юзеру.

$im=imageCreateFromPNG ("88x31.png");
$white=imageColorAllocate($im255,255,255);
$black=imageColorAllocate($im0,0,0);
@
imageString ($im1512"Hits  ".$hit$black);
@
imageString ($im1520"Hosts ".$host$black);
@
imageString ($im151$total_host$white);
header ("Content-type: image/png");
imagePNG ($im);
imageDestroy ($im);


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

А вот как работает мой счетчик:
http://www.autodealer.ru
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн qik

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 265
  • +0/-0
  • 0
    • Просмотр профиля
    • http://zapostil.ru/
счетчик
« Ответ #2 : 08 Июля 2002, 11:02:44 »
как изменить расположение цифр на 88x31.png ?

Оффлайн qik

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 265
  • +0/-0
  • 0
    • Просмотр профиля
    • http://zapostil.ru/
счетчик
« Ответ #3 : 08 Июля 2002, 11:04:54 »
есть скрипт, котрый показывает:

1. сколько было показано страниц всего   |
2. сколько показано сегодня              |
-----------------------------------------

3. сколько посетителей было всего
4. сколько было сегодня
5. сколько находится на сайте сейчас

мне нужно убрать первые два пункта и чтоб скрипт был графический, а не текстовый....



$total_data="base.dat";
$online_data="online.dat";
$time=time();
$now=(int)(time()/86400);
$past_time=time()-600;

$readdata=fopen($online_data,"r") or die("Не могу открыть файл $online_data");
$online_data_array=file($online_data);
fclose($readdata);

if(getenv(\'HTTP_X_FORWARDED_FOR\'))
        $user=getenv(\'HTTP_X_FORWARDED_FOR\');
else
        $user=getenv(\'REMOTE_ADDR\');

$d=count($online_data_array);
for($i=0;$i<$d;$i++)
        {
        list($live_user,$last_time)=explode("::","$online_data_array[$i]");
        if($live_user!=""&&$last_time!=""):
        if($last_time<$past_time):
                $live_user="";
                $last_time="";
        endif;
        if($live_user!=""&&$last_time!="")
                {
                if($user==$live_user)
                        {
                        $online_array[]="$user::$time\\r\\n";
                        }
                else
                        $online_array[]="$live_user::$last_time";
                }
        endif;
        }

        if(isset($online_array)):
        foreach($online_array as $i=>$str)
                {
                if($str=="$user::$time\\r\\n")
                        {
                        $ok=$i;
                        break;
                        }
                }
        foreach($online_array as $j=>$str)
                {
                if($ok==$j) { $online_array[$ok]="$user::$time\\r\\n"; break;}
                }
       endif;

$writedata=fopen($online_data,"w") or die("Не могу открыть файл $online_data");
flock($writedata,2);
if($online_array=="") $online_array[]="$user::$time\\r\\n";
foreach($online_array as $str)
        fputs($writedata,"$str");
flock($writedata,3);
fclose($writedata);

$readdata=fopen($online_data,"r") or die("Не могу открыть файл $online_data");
$online_data_array=file($online_data);
fclose($readdata);
$online=count($online_data_array);

$f=fopen($total_data,"a");
$call="$user|$now\\n";
$call_size=strlen($call);
flock($f,2);
fputs($f, $call,$call_size);
flock($f,3);
fclose($f);

$tarray=file($total_data);
$total_hits=count($tarray);

$today_hits_array=array();
for($i=0;$i        {
        list($ip,$t)=explode("|",$tarray[$i]);
        if($now==$t) { array_push($today_hits_array,$ip); }
        }
$today_hits=count($today_hits_array);

$total_hosts_array=array();
for($i=0;$i        {
        list($ip,$t)=explode("|",$tarray[$i]);
        array_push($total_hosts_array,$ip);
        }
$total_hosts=count(array_unique($total_hosts_array));

$today_hosts_array=array();
for($i=0;$i        {
        list($ip,$t)=explode("|",$tarray[$i]);
        if($now==$t) { array_push($today_hosts_array,$ip); }
        }
$today_hosts=count(array_unique($today_hosts_array));

echo "document.write(\'\');";
echo "document.write(\'\');";
echo "document.write(\'\');";
echo "document.write(\'\');";
echo "document.write(\'\');";
echo "document.write(\'\');";
echo "document.write(\'\');";

?>

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
счетчик
« Ответ #4 : 08 Июля 2002, 12:24:25 »
Цитировать
как изменить расположение цифр на 88x31.png ?

imageString ($im, 1, 5, 1, $total_host, $white);
1 - дескриптор файла.
2 - шрифт
3 - x
4 - y
5 - строка
6 - цвет
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн qik

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 265
  • +0/-0
  • 0
    • Просмотр профиля
    • http://zapostil.ru/
счетчик
« Ответ #5 : 09 Июля 2002, 11:39:03 »
понятно а как на счет "мне нужно убрать первые два пункта и чтоб скрипт был графический, а не текстовый.... "

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
счетчик
« Ответ #6 : 09 Июля 2002, 12:53:31 »
Цитировать
echo "document.write(\'
\');";
echo "document.write(\'\');";
echo "document.write(\'\');";
echo "document.write(\'\');";
echo "document.write(\'\');";
echo "document.write(\'\');";

Дак бери только, то что тебе надо.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн qik

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 265
  • +0/-0
  • 0
    • Просмотр профиля
    • http://zapostil.ru/
счетчик
« Ответ #7 : 09 Июля 2002, 15:13:30 »
так то оно так, да ведь нужно скрипт почистить и сделать его  вывод графическим =(

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
счетчик
« Ответ #8 : 09 Июля 2002, 15:24:50 »
Пиши вместо куска, который я цитировал$im=imageCreateFromPNG ("88x31.png");
$white=imageColorAllocate($im255,255,255);
$black=imageColorAllocate($im0,0,0);
@
imageString ($im1512"total_hosts  ".$total_hosts);
@
imageString ($im1520"today_hosts ".$today_hosts$black);
@
imageString ($im151$online$white);
header ("Content-type: image/png");
imagePNG ($im);
imageDestroy ($im);

И удали все расчёты связаные с переменными $total_hits, $today_hits, $total_hosts
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн qik

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 265
  • +0/-0
  • 0
    • Просмотр профиля
    • http://zapostil.ru/
счетчик
« Ответ #9 : 09 Июля 2002, 17:46:55 »
спасибо, но как это сделать графическим ?

Оффлайн qik

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 265
  • +0/-0
  • 0
    • Просмотр профиля
    • http://zapostil.ru/
счетчик
« Ответ #10 : 09 Июля 2002, 17:55:14 »
а полностью с переменными $total_hits, $today_hits, $total_hosts

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
счетчик
« Ответ #11 : 09 Июля 2002, 18:13:43 »
Цитировать
а полностью с переменными $total_hits, $today_hits, $total_hosts
ДА!!!

Цитировать
но как это сделать графическим

Издеваешься что ли:
1) Удаляешь строки с echo (7 - штук)
2) Вставляешь мой код (из последнего сообщения)
3) Вызываешь скрипт
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн qik

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 265
  • +0/-0
  • 0
    • Просмотр профиля
    • http://zapostil.ru/
счетчик
« Ответ #12 : 09 Июля 2002, 19:51:51 »
я не издеваюсь, извени я недопонял..........
какой php код будет вместе с $total_hits, $today_hits, $total_hosts, $today_hosts и $online ?????????

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
счетчик
« Ответ #13 : 10 Июля 2002, 08:55:23 »
[quote]$im=imageCreateFromPNG ("88x31.png");
$white=imageColorAllocate($im255,255,255);
$black=imageColorAllocate($im0,0,0);
@
imageString ($im1512"total_hosts  ".$total_hosts);
@
imageString ($im1520"today_hosts ".$today_hosts$black);
@
imageString ($im151$online$white);
header ("Content-type: image/png");
imagePNG ($im);
imageDestroy ($im);[/quote]

Вставь доп. строки с соответствущеми переменными
@imageString ($im, 1, 5, 1, $соответствущая_переменная, $white);
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 

Статистика сайта
Хитов всего: $total_hits
Хитов сегодня: $today_hits
Хостов всего: $total_hosts
Хостов сегодня: $today_hosts
Сейчас на сайте: $online
Статистика сайта
Хитов всего: $total_hits
Хитов сегодня: $today_hits
Хостов всего: $total_hosts
Хостов сегодня: $today_hosts
Сейчас на сайте: $online