Делаем свой счетчик посещений на PHP
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Делаем свой счетчик посещений на PHP - 2008-11-12 18:13:08.430000
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
Сейчас я расскажу как самому сделать счетчик посещений с записью Ip, brouser и прочих данных вообщем начнем: для удобства создадим таблицу вида HTML: <html>
<head>
<title></title>
</head>
<bоdу>
<form>
[color=#FF0033]//создаем кнопку которая будет удалять
//показания счетчика[/color]
<form name="" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" name="submit" value="Очистить все поля">
</form>
<table border="5" cellspacing="0" align=center>
<tr>
<td>
IP
</td>
<td>
Host
</td>
<td>
Brouser/OS
</td>
<td>
Referer
</td>
<td>
Index page
</td>
<td>
Brouser lang
</td>
<td>
date
</td>
</tr>
и 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); } итак общий вид скрипта: <html>
<head>
<title></title>
</head>
<bоdу>
<form
<form name="" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" name="submit" value="Очистить все поля">
</form>
<table border="5" cellspacing="0" align=center>
<tr>
<td>
IP
</td>
<td>
Host
</td>
<td>
Brouser/OS
</td>
<td>
Referer
</td>
<td>
Index page
</td>
<td>
Brouser lang
</td>
<td>
date
</td>
</tr>
<?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();
}
$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,'<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);
}
?>
</table>
</bоdу>
</html> Теперь реализуем возможность записи с других станиц для этого на страницу с которой необходимо вести счет надо поместить код <?php ob_start(); include('count.php'); //путь к скрипту - счетчику ob_end_clean(); ?> Рабочий пример можно увидеть по адрессу http://frilll.tu2.ru/des3.php (C) FriLL
|
|
|
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 18:37:13.980000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
quote:
echo ("<b>Количество кликов по ссылкам/переходов:</b> <font color=red size=5>$count</font>"); на примере это по другому выглядит + не работает кнопка очистки + непонятно что значит в: Количество кликов по ссылкам: 3211383 , число 11383
|
|
|
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 18:42:26.960000
|
|
|
sbxmal
Сообщений: 433
Оценки: 0
Присоединился: 2008-06-12 15:08:08.006666
|
Кнопка работает, просто надо 2 раза нажать 1 - еще + к посещениям 2- очищает :D
|
|
|
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 не, не очищает что-то… ) дак что это за левое число там после кол-ва посещений?
|
|
|
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 19:03:50.146666
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
quote:
Количество кликов по ссылкам: 3211383 , число 11383 это число считаных байт из файла, как убрать низнаю у меня на сайте эксперементируйте, там тотже скрипт только без кукисов
|
|
|
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]
|
|
|
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 20:00:43.843333
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
quote:
+ зачем было в сорсах тег <bоdу> писать через русскую "y" ? это не я а фильтрация форума от тегов quote:
дык я про твой сайт и говорю - кнопка не работает ) все работает /des3.php?submit=%CE%F7%E8%F1%F2%E8%F2%FC+%E2%F1%E5+%EF%EE%EB%FF каким образом ты передаеш кнопку get методом
|
|
|
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 20:02:49.236666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
FriLL, ну доведи скрипт до ума, там ведь работы на 5 минут…
|
|
|
RE: Делаем свой счетчик посещений на PHP - 2008-11-12 21:03:37.846666
|
|
|
VaZoNeZ
Сообщений: -6758
Оценки: 0
Присоединился: 2008-10-31 14:38:43.796666
|
жаль что на укозе свой счетчик, мож ченить замутил-бы…
|
|
|
RE: Делаем свой счетчик посещений на PHP - 2009-11-12 12:14:36.980000
|
|
|
Darth Padla
Сообщений: 33
Оценки: 0
Присоединился: 2009-10-28 16:02:48.713333
|
Спасибо за простой счетчик.софттаймовский был слишком сложен для разбора на атомы,переработки и последущего ваяния своего счетчика,с блекджеком и шлюхами.
|
|
|
RE: Делаем свой счетчик посещений на PHP - 2009-11-13 02:35:05.296666
|
|
|
Pan4eZzz
Сообщений: 164
Оценки: 0
Присоединился: 2008-02-25 23:34:33.110000
|
[Взлом] >> Для начинающих >> Делаем свой счетчик посещений на PHP ….. мдя
|
|
|
|
|