Страницы: [1]
|
![Ответ Ответ](http://forum.insk.ru/YaBBImages/reply.gif) |
|
|
Автор
|
Тема: счетчик посещений страницы (Прочитано 6541 раз(а))
|
|
raindrop
something alive Профи
|
![](./Images/General/xx.gif) |
Re:счетчик посещений страницы
« Ответ #1 Время отправления: Воскресенье04 November 2004г, 05:58:18 »
|
|
Нужно сделать счетчик посещений Web-страницы. Посмотрев разные способы, я остановился на cookie (в данном случае cookie будет храниться на сервере). Все заработала, но образовалась загвоздка в виде конфликта браузеров - те cookie, которые создает IE не понимает NN и наоборот. В результате отдельно считаются пользователи, зашедшие на сервер через IE и отдельно - зашедшие через NN. Что здесь можно придумать? Хотелось бы использовать именно cookie, а не CGI или что-нибудь еще.
|
|
Задача вообще какая стоит: посчитать кол-во всех пользователей, посетивших страницу, или вести индивидуальную статистику для каждого?
Первый случай: всяко придется использоваться хранение информации на сервере, т.е. PHP или CGI.
Во втором случае: если пренебречь возможностью, что один пользователь вдруг начнет для посещения одного и того же сайта пользоваться двумя браузерами, то всё срастается. Если же всё-таки начнет, то не срастается. А воообще такие штучки лучше всего хранить в накопительном режиме на сервере, например для последующего анализа, а то смысл теряется.
|
Авторизован |
...possible a last drop!
|
|
|
Михаил
Гость
|
![](./Images/General/xx.gif) |
Re:счетчик посещений страницы
« Ответ #4 Время отправления: Воскресенье18 November 2004г, 09:16:33 »
|
|
----------------------------- К чему такая суета? Я на своей странице особо не парился со счётчиком. На Народ.ру выбрал стандартный счётчик из предложенных. Вроде работает нормально. ----------------------------- Вот не надо советовать такую ерунду, на народе счетчик совершенно галимый, некрасивый и бесполезный. Если уж на то пошло можно ствить нормальные счетчики от спайлог, хотлог, мэил.ру и т.д. А на счет счеткика не так уж все и сложно. Самый первый скрипт который я написал на ПХП как раз и был графический счетчик посещений на подобие спайлога. Статистику можно вести по IP-адресам, так по-мойму и делают все каталоги сайтов. Конечно можно ставить cookie (только именно в браузере пользователя, чтобы при последующем посещении передавалась кука о том что сайт посещался в такой-то день), но по-мойму это излишнее, просто статистика по IP-адресам. Создается файл, куда записывается ip-адреса посетителей, и при кадом новом посещении проверяется нет ли данного ip-адреса в списке, если есть то учитываем только общее количество посещений, если нет то дописываем его. Ну и скрипт отображения картинки. Рисуем картинку, сохраняем ее в файле, а дальше в пхп выводим на нее цифры (с помощью графических функций). Общее количество посещений можно записывать цифрой в отдельный файл а потом просто выводить эту цифру на картинку, ну а количество уникальных посетителей просто общитывается из количества ip-адресов (скажем если ip-адрес добавлять в файл как новую строку, то скрипту достаточно просто сощитать количество строк в файле). Вот и весь счетчик, конечно можно сохрянять статистику для последующего анализа, для этого в конце каждого дня можно переводить количество ip-адресов в цифры (чтоб не захламлять место на диске) и хранить отдельно по датам. Вот и все. Если не нужна картинка можно просто выводить все текстом.
| Этот пользователь был отключён и/или удалён
Авторизован |
|
|
|
Михаил
Гость
|
![](./Images/General/thumbup.gif) |
Re:счетчик посещений страницы
« Ответ #8 Время отправления: Воскресенье20 November 2004г, 23:24:53 »
|
|
Вот, для него нужна картинка 88x31 с пустым местом в нижней части для отображения чисел. И файл counter.txt где первой строкой будет цифра общего количества посещений а начиная со второй строки - ip-адреса посетителей. Скрипт проверяет дату последнего использования файла counter.txt и если наступает следующий день - очищает список ip-адресов.
<?php header ("Content-type: image/png; charset=windows-1251");
$f = "counter.txt"; $ip = $REMOTE_ADDR; $t = $_GET ['t'];
if( is_file ( $f ) ) { $now_date = date( "M d Y" ); $f_date = date ( "M d Y" , filectime ( $f ) ); $f = "counter.txt"; $f = file ( $f ); if ( $f ) { $count_all = $f [ 0 ] + 1; for ( $i = 1; $i < count ( $f ); $i++ ) $ips .= $f [ $i ]; $count_ips = count ( $f ) - 1; if ( preg_match ( "/$ip/i" , $ips ) == false) { $ips .= "$ip\n"; $count_ips += 1; } if ( $now_date !== $f_date ) { $ips = "$ip\n"; $count_ips = 1; } } else { $count_all = 1; $count_ips = 1; $ips = "$ip\n"; } $f = fopen ( "counter.txt" , 'w'); fputs ( $f, "$count_all\n$ips" ); fclose ( $f ); } else { $count_ips = 1; $count_all = 1; $f = fopen ( "counter.txt" , 'w' ); fputs ( $f , "1\n$ip\n" ); fclose ( $f ); }
$x1 = 3; $x2 = 80 - strlen ( $count_ips ) * 5; $y = 22; $font = 1;
$im = ImageCreateFromPng ( "test.png" ); $color = imagecolorallocate ( $im , 250 , 244 , 203 ); // Цвет текста imagestring ( $im , $font , $x1 , $y , $count_all , $color ); imagestring ( $im , $font , $x2 , $y , "+$count_ips" , $color ); imagepng ( $im ); ?>
| Этот пользователь был отключён и/или удалён
Авторизован |
|
|
|
Страницы: [1]
|
|
|
|
|
|
|