Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Делаем свой счетчик посещений на PHP

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Для начинающих] >> Делаем свой счетчик посещений на PHP
Имя
Сообщение << Старые топики   Новые топики >>
Делаем свой счетчик посещений на PHP - 2008-11-12 18:13:08.430000   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
Сейчас я расскажу как самому сделать счетчик посещений с записью Ip, brouser и прочих данных
вообщем начнем:

для удобства создадим таблицу вида


HTML:
&lt;html&gt; &lt;head&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;bоdу&gt; &lt;form&gt; [color=#FF0033]//создаем кнопку которая будет удалять //показания счетчика[/color] &lt;form name="" action="&lt;?php $_SERVER['PHP_SELF']; ?&gt;" method="post"&gt; &lt;input type="submit" name="submit" value="Очистить все поля"&gt; &lt;/form&gt; &lt;table border="5" cellspacing="0" align=center&gt; &lt;tr&gt; &lt;td&gt; IP &lt;/td&gt; &lt;td&gt; Host &lt;/td&gt; &lt;td&gt; Brouser/OS &lt;/td&gt; &lt;td&gt; Referer &lt;/td&gt; &lt;td&gt; Index page &lt;/td&gt; &lt;td&gt; Brouser lang &lt;/td&gt; &lt;td&gt; date &lt;/td&gt; &lt;/tr&gt;



и php-скрипт записывающий данные и отображающий их:

$n=fopen("stat.txt","a+"); //создаем файл для записи количества переходов по страницам
$count=fread($n,100);
fclose($n);
echo ("<b>Количество кликов по ссылкам/переходов:</b> <font color=red size=5>$count</font>");
$f2=readfile("ct.txt");
echo $f2; //читаем файл и отображаем предыдущие записи
if($_POST['submit']) //обрабатываем действие кнопки для удаления данных счетчика
{
unlink("stat.txt");
$n = fopen("stat.txt","a+");
fclose($n);
unlink("ct.txt");
$f = fopen("ct.txt", "a");
fclose($f);
exit();
}


Дальше


if(!$_COOKIE['frll_count'])
{
setcookie("frll_count",time()+3600 ); //ставим куки для того чтобы 1 пользователь не записывался много раз

$ip=$_SERVER['REMOTE_ADDR'];
$brouser=$_SERVER['HTTP_USER_AGENT']; //записываем клиенские данные
$ref=$_SERVER['HTTP_REFERER'];
$url=$_SERVER['REQUEST_URI'];
$lang=$_SERVER['HTTP_ACCEPT_LANGUAGE'];
$host = gethostbyaddr($ip);
if(!$url)
{
$url = '———';
}

if(!$ref) //если отсутсвует реферер ставим прочерки
{
$ref = '———';
}


$f = fopen("ct.txt", "a"); //теперь все полученные данные записываем в файл ct.txt
fputs($f,'<tr>');
fputs($f,'<td>');
fputs ($f,$ip);
fputs($f,'</td>');

fputs($f,'<td>');
fputs ($f,$host);
fputs($f,'</td>');
fputs($f,'<td>');
fputs ($f,$brouser);
fputs($f,'</td>');
fputs($f,'<td>');
fputs ($f,$ref);
fputs($f,'</td>');
fputs($f,'<td>');
fputs ($f,$url);
fputs($f,'</td>');
fputs($f,'<td>');
fputs ($f,$lang);
fputs($f,'</td>');
fputs($f,'<td>');
fputs ($f,date("j.m.Y G:i"));
fputs($f,'</td>');
fputs($f,'</tr>');
fclose($f);
}


итак общий вид скрипта:

&lt;html&gt; &lt;head&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;bоdу&gt; &lt;form &lt;form name="" action="&lt;?php $_SERVER['PHP_SELF']; ?&gt;" method="post"&gt; &lt;input type="submit" name="submit" value="Очистить все поля"&gt; &lt;/form&gt; &lt;table border="5" cellspacing="0" align=center&gt; &lt;tr&gt; &lt;td&gt; IP &lt;/td&gt; &lt;td&gt; Host &lt;/td&gt; &lt;td&gt; Brouser/OS &lt;/td&gt; &lt;td&gt; Referer &lt;/td&gt; &lt;td&gt; Index page &lt;/td&gt; &lt;td&gt; Brouser lang &lt;/td&gt; &lt;td&gt; date &lt;/td&gt; &lt;/tr&gt; &lt;?php $n=fopen("stat.txt","a+"); $count=fread($n,100); fclose($n); echo ("&lt;b&gt;Количество кликов по ссылкам/переходов:&lt;/b&gt; &lt;font color=red size=5&gt;$count&lt;/font&gt;"); $f2=readfile("ct.txt"); echo $f2; if($_POST['submit']) { unlink("stat.txt"); $n = fopen("stat.txt","a+"); fclose($n); unlink("ct.txt"); $f = fopen("ct.txt", "a"); fclose($f); exit(); } $n=fopen("stat.txt","a+"); flock($n,LOCK_EX); $count=fread($n,100); @$count++; ftruncate($n,0); fwrite($n,$count); fflush($n); flock($n,LOCK_UN); fclose($n); if(!$_COOKIE['frll_count']) { setcookie("frll_count",time()+3600 ); $ip=$_SERVER['REMOTE_ADDR']; $brouser=$_SERVER['HTTP_USER_AGENT']; $ref=$_SERVER['HTTP_REFERER']; $url=$_SERVER['REQUEST_URI']; $lang=$_SERVER['HTTP_ACCEPT_LANGUAGE']; $host = gethostbyaddr($ip); if(!$url) { $url = '---------'; } if(!$ref) { $ref = '---------'; } $f = fopen("ct.txt", "a"); fputs($f,'&lt;tr&gt;'); fputs($f,'&lt;td&gt;'); fputs ($f,$ip); fputs($f,'&lt;/td&gt;'); fputs($f,'&lt;td&gt;'); fputs ($f,$host); fputs($f,'&lt;/td&gt;'); fputs($f,'&lt;td&gt;'); fputs ($f,$brouser); fputs($f,'&lt;/td&gt;'); fputs($f,'&lt;td&gt;'); fputs ($f,$ref); fputs($f,'&lt;/td&gt;'); fputs($f,'&lt;td&gt;'); fputs ($f,$url); fputs($f,'&lt;/td&gt;'); fputs($f,'&lt;td&gt;'); fputs ($f,$lang); fputs($f,'&lt;/td&gt;'); fputs($f,'&lt;td&gt;'); fputs ($f,date("j.m.Y G:i")); fputs($f,'&lt;/td&gt;'); fputs($f,'&lt;/tr&gt;'); fclose($f); } ?&gt; &lt;/table&gt; &lt;/bоdу&gt; &lt;/html&gt;

Теперь реализуем возможность записи с других станиц
для этого на страницу с которой необходимо вести счет надо поместить код

<?php

ob_start();
include('count.php'); //путь к скрипту - счетчику
ob_end_clean();
?>


Рабочий пример можно увидеть по адрессу http://frilll.tu2.ru/des3.php

(C) FriLL
Post #: 1
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 18:37:13.980000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
quote:

echo ("&lt;b&gt;Количество кликов по ссылкам/переходов:&lt;/b&gt; &lt;font color=red size=5&gt;$count&lt;/font&gt;");

на примере это по другому выглядит + не работает кнопка очистки + непонятно что значит в:
Количество кликов по ссылкам: 3211383 , число 11383




Post #: 2
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 18:42:26.960000   
sbxmal

Сообщений: 433
Оценки: 0
Присоединился: 2008-06-12 15:08:08.006666
Кнопка работает, просто надо 2 раза нажать
1 - еще + к посещениям
2- очищает :D
Post #: 3
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 18:55:19.260000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
quote:

ORIGINAL: sbxmal

Кнопка работает, просто надо 2 раза нажать
1 - еще + к посещениям
2- очищает :D

не, не очищает что-то… )
дак что это за левое число там после кол-ва посещений?
Post #: 4
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 19:03:50.146666   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
quote:

Количество кликов по ссылкам: 3211383 , число 11383

это число считаных байт из файла, как убрать низнаю

у меня на сайте эксперементируйте, там тотже скрипт только без кукисов
Post #: 5
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 19:53:22.620000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
ну с кукисами то понятно, кстати здесь вопрос - есть ли смысл присваивать куки, не лучше по ИПу
определять повторы? чтобы компы кукисами не засорять всем =)

дык я про твой сайт и говорю - кнопка не работает )

количиство байт пишется по логике в $f2:
echo ("<b>Количество кликов по ссылкам/переходов:</b> <font color=red size=5>$count</font>");
$f2=readfile("ct.txt");
echo $f2;
так может лучше пользоваться fread() вместо readfile()

+ зачем было в сорсах тег <body> писать через русскую "y" ? [sm=ag.gif]




Post #: 6
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 20:00:43.843333   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
quote:

+ зачем было в сорсах тег &lt;bоdу&gt; писать через русскую "y" ?

это не я а фильтрация форума от тегов

quote:

дык я про твой сайт и говорю - кнопка не работает )

все работает
/des3.php?submit=%CE%F7%E8%F1%F2%E8%F2%FC+%E2%F1%E5+%EF%EE%EB%FF
каким образом ты передаеш кнопку get методом
Post #: 7
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 20:02:49.236666   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
FriLL, ну доведи скрипт до ума, там ведь работы на 5 минут…
Post #: 8
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 21:03:37.846666   
VaZoNeZ

Сообщений: -6758
Оценки: 0
Присоединился: 2008-10-31 14:38:43.796666
жаль что на укозе свой счетчик, мож ченить замутил-бы…
Post #: 9
RE: Делаем свой счетчик посещений на PHP - 2009-11-12 12:14:36.980000   
Darth Padla

Сообщений: 33
Оценки: 0
Присоединился: 2009-10-28 16:02:48.713333
Спасибо за простой счетчик.софттаймовский был слишком сложен для разбора на атомы,переработки и последущего ваяния своего счетчика,с блекджеком и шлюхами.
Post #: 10
RE: Делаем свой счетчик посещений на PHP - 2009-11-13 02:35:05.296666   
Pan4eZzz

Сообщений: 164
Оценки: 0
Присоединился: 2008-02-25 23:34:33.110000
[Взлом] >> Для начинающих >> Делаем свой счетчик посещений на PHP
….. мдя
Post #: 11
Страниц:  [1]
Все форумы >> [Для начинающих] >> Делаем свой счетчик посещений на PHP







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.