Удомельский форум   ◊
www.udomlya.ru | Медиа-Центр | Удомля КТВ | Старый форум

Вернуться   Удомельский форум > Hard&Soft > Программирование
Справка Пользователи Календарь Сообщения за день
 
 
Опции темы Опции просмотра
Старый 07.11.2009, 19:25   #11
Luky
Местный
 
Аватар для Luky
 
Регистрация: 10.04.2008
Адрес: кресло
Сообщений: 532
Вы сказали Спасибо: 274
Поблагодарили 194 раз(а) в 122 сообщениях
Отправить сообщение для Luky с помощью ICQ
По умолчанию

Цитата:
Сообщение от Antarius Посмотреть сообщение
Ясный прец,что не будет работать...Я вообще надеялся,что у когонибудь завалялся такой скрипт,ну или хотябы похожий.
Вобщем нужен счетчик который просто так будет цифры накручивать и все.Есть у кого такой?Поделитесь,пожалуйста
А мозгом не подумать?google решает!
Luky вне форума  
Старый 07.11.2009, 19:26   #12
Luky
Местный
 
Аватар для Luky
 
Регистрация: 10.04.2008
Адрес: кресло
Сообщений: 532
Вы сказали Спасибо: 274
Поблагодарили 194 раз(а) в 122 сообщениях
Отправить сообщение для Luky с помощью ICQ
По умолчанию

Вот ресурсик по яве http://javascript.ru/
Luky вне форума  
Старый 07.11.2009, 20:12   #13
Antarius
Местный
 
Аватар для Antarius
 
Регистрация: 02.09.2007
Сообщений: 226
Вы сказали Спасибо: 370
Поблагодарили 256 раз(а) в 53 сообщениях
По умолчанию

google фуфло
не всегда можно найти,то что нужно...
Antarius вне форума  
Старый 07.11.2009, 20:47   #14
Messiah
Местный
 
Аватар для Messiah
 
Регистрация: 20.09.2007
Сообщений: 4,201
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
По умолчанию

Цитата:
Сообщение от Antarius Посмотреть сообщение
....нужен счетчик который просто так будет цифры накручивать и все...
#!/usr/bin/perl
$namefile="/home2/your_domen/public_html/mystat/count.txt";
$nameipfile="/home2/your_domen/public_html/mystat/ip.txt";
$ip=$ENV{"REMOTE_ADDR"};
open (IPFILE, "$nameipfile");
$ipold = ;
close(IPFILE);
chomp ($ipold);
if ($ipold eq $ip) {
exit;
}
open (IPFILE, "$nameipfile");
print IPFILE "$ip";
close(IPFILE);
open (COUNTFILE, "+<$namefile");
flock (COUNTFILE,2);
$count =readline(*COUNTFILE);
chomp ($count);
$count=$count + 1;
seek (COUNTFILE,0,0);
truncate(COUNTFILE,0);
print COUNTFILE "$count";
close(COUNTFILE);
print "Content-Type: text/html ";
print "$count";
exit;
Messiah вне форума  
Старый 07.11.2009, 21:20   #15
Antarius
Местный
 
Аватар для Antarius
 
Регистрация: 02.09.2007
Сообщений: 226
Вы сказали Спасибо: 370
Поблагодарили 256 раз(а) в 53 сообщениях
По умолчанию

Цитата:
Сообщение от Messiah Посмотреть сообщение
#!/usr/bin/perl
$namefile="/home2/your_domen/public_html/mystat/count.txt";
$nameipfile="/home2/your_domen/public_html/mystat/ip.txt";
$ip=$ENV{"REMOTE_ADDR"};
open (IPFILE, "$nameipfile");
$ipold = ;
close(IPFILE);
chomp ($ipold);
if ($ipold eq $ip) {
exit;
}
open (IPFILE, "$nameipfile");
print IPFILE "$ip";
close(IPFILE);
open (COUNTFILE, "+<$namefile");
flock (COUNTFILE,2);
$count =readline(*COUNTFILE);
chomp ($count);
$count=$count + 1;
seek (COUNTFILE,0,0);
truncate(COUNTFILE,0);
print COUNTFILE "$count";
close(COUNTFILE);
print "Content-Type: text/html ";
print "$count";
exit;
Это счетчик посещяемости?Да не,мне не такой нужен.
Да я и тот смог запустить:
PHP код:
<html>
<
script src="http://vkontakte.ru/js/functions.js?5"></script>
<script type="text/javascript">
 var memCount =100000;
 var memPerSec = 2.2;
 function updateCount() {
  next = -(1000 / memPerSec)*Math.log(Math.random());
  memCountString = '' + memCount;
  len = memCountString.length;
  memCountString = memCountString.substr(0,len-6)+" "+memCountString.substr(len-6,3)+" "+memCountString.substr(len-3,3);
  ge('memCount').innerHTML = memCountString;
  memCount = memCount + 1;
  setTimeout(updateCount, next);
 }
 window.onload = function(){
  updateCount();
 }
</script>

<b id='memCount'> 100000</b>
</html> 
Нужно было одну строчку то и добавить.
Правда он работает нормально только после 100 000.
Antarius вне форума  
Старый 07.11.2009, 23:05   #16
Messiah
Местный
 
Аватар для Messiah
 
Регистрация: 20.09.2007
Сообщений: 4,201
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
По умолчанию

Цитата:
Сообщение от Antarius Посмотреть сообщение
Это счетчик посещяемости? Да не,мне не такой нужен...Правда он работает нормально только после 100 000.
Тогда я не понимаю, что нужно вообще, и какая цель преследуется?
А что значение var memCount изменить не судьба?
Messiah вне форума  
Старый 07.11.2009, 23:23   #17
Luky
Местный
 
Аватар для Luky
 
Регистрация: 10.04.2008
Адрес: кресло
Сообщений: 532
Вы сказали Спасибо: 274
Поблагодарили 194 раз(а) в 122 сообщениях
Отправить сообщение для Luky с помощью ICQ
По умолчанию

Цитата:
Сообщение от messiah Посмотреть сообщение
Тогда я не понимаю, что нужно вообще, и какая цель преследуется?
А что значение var memcount изменить не судьба?
Он хочет анимацию!
Так то так нас уже столько то столькото в)и анимация явская._.
Luky вне форума  
Старый 07.11.2009, 23:45   #18
Messiah
Местный
 
Аватар для Messiah
 
Регистрация: 20.09.2007
Сообщений: 4,201
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
По умолчанию

Цитата:
Сообщение от Luky Посмотреть сообщение
Он хочет анимацию!
Так то так нас уже столько то столькото в)и анимация явская._.
Анимашку сваять ваще не вопрос и дело 3-х минут, чтоб в неё подставлялось высчитанное значение. А вот по поводу того, чего он хочет, он и сам не разобрался, говоря что приведённый текст - счётчик посещений. Видно что не понимает сути кода. Придётся разобрать по полкам, хоть и лениво. Только я уж на перле, поскольку уже неделю своим роутером разбираюсь, а в нём перловка и уже на зубах навязла, аж скрипит:
Что будет, если в браузере зайти на страницу со счетчиком и нажать "обновить"? Правильно - значение счетчика увеличится на единицу. Причем каждая новая загрузка страницы в браузер будет вызывать увеличение значения счетчика. Научим счетчик отслеживать заходы подряд с одного IP-адреса и не засчитывать их. Здесь кончается история счётчика посещений!!!! Для этого создадим файл, например, ip.txt и положим его в ту же директорию mystat на сервере. Назначим ему права доступа 666. В этом файле будем хранить IP-адрес, засчитанного счетчиком. Теперь осталось добавить проверку в скрипт. Добавим переменную, содержащую путь к файлу:
$nameipfile="/home2/your_domen/public_html/mystat/ip.txt";
Теперь надо получить IP-адрес посетителя. Содержится он в переменной $ENV{"REMOTE_ADDR"}, значение которой передается скрипту браузером посетителя вместе с запросом. Присвоим это значение переменной $ip:
$ip=$ENV{"REMOTE_ADDR"};
Теперь считаем из файла ip.txt значение IP-адреса, сравним его с полученным. Если они совпадают, тогда не засчитаем заход (завершив работу скрипта), если же не совпадают - увеличим значение счетчика и запишем новое значение IP-адреса в файл ip.txt:
PHP код:
open (IPFILE"$nameipfile");
$ipold = ;
close(IPFILE);
chomp ($ipold);
if (
$ipold eq $ip) {
exit;
}
open (IPFILE"$nameipfile");
print 
IPFILE "$ip";
close(IPFILE); 
Точность показаний счетчика стала выше. Как он поведет себя, если на страницу зайдут сразу двое? Одновременно два процесса попытаются произвести запись в файл с показаниями счетчика, в результате чего все данные могут быть потеряны. Чтобы этого не допустить, надо запретить одновременный доступ к файлу нескольких процессов. Можно с помощью функции flock, которая заблокирует файл, связанный с дескриптором, от доступа из других скриптов. Изменим процесс работы с файлом count.txt:
PHP код:
open (COUNTFILE"+<$namefile");
flock (COUNTFILE,2);
$count =readline(*COUNTFILE);
chomp ($count);
$count=$count 1;
seek (COUNTFILE,0,0);
truncate(COUNTFILE,0);
print 
COUNTFILE "$count";
close(COUNTFILE); 
Поясним действия.
1) Открываем файл для чтения и записи:
open (COUNTFILE, "+<$namefile");
2) Блокируем файл от доступа из других одновременно запущенных процессов выполнения скрипта
flock (COUNTFILE,2);
3) Считываем значение счетчика из файла
$count =readline(*COUNTFILE);
4) Удаляем символ конца строки (если он случайно неизвестно откуда появился)
chomp ($count);
5) Увеличиваем значение счетчика
$count=$count + 1;
6) Перемещаем указатель позиции в файле на его начало
seek (COUNTFILE,0,0);
7) Усекаем длину файла до текущей позиции (т. е. до начала файла, куда мы передвинули этот указатель предыдущей строкой)
truncate(COUNTFILE,0);
8) Записываем в файл новое значение счетчика
print COUNTFILE "$count";
9) Закрываем файл, одновременно снимая с него блокировку
close(COUNTFILE);
Итак, весь скрипт теперь будет иметь следующий вид:
PHP код:
#!/usr/bin/perl
$namefile="/home2/your_domen/public_html/mystat/count.txt";
$nameipfile="/home2/your_domen/public_html/mystat/ip.txt";
$ip=$ENV{"REMOTE_ADDR"};
open (IPFILE"$nameipfile");
$ipold = ;
close(IPFILE);
chomp ($ipold);
if (
$ipold eq $ip) {
exit;
}
open (IPFILE"$nameipfile");
print 
IPFILE "$ip";
close(IPFILE);
open (COUNTFILE"+<$namefile");
flock (COUNTFILE,2);
$count =readline(*COUNTFILE);
chomp ($count);
$count=$count 1;
seek (COUNTFILE,0,0);
truncate(COUNTFILE,0);
print 
COUNTFILE "$count";
close(COUNTFILE);
print 
"Content-Type: text/html ";
print 
"$count";
exit; 
Конец выполнения программы (без этого можно обойтись, но почему бы не следовать традициям). Снабжаем эту хрень заголовком:
Нас уже - [ ] ...вуаля

Последний раз редактировалось Messiah; 07.11.2009 в 23:52.
Messiah вне форума  
Этот пользователь сказал Спасибо Messiah за это полезное сообщение:
Luky (08.11.2009)
Старый 08.11.2009, 15:32   #19
Antarius
Местный
 
Аватар для Antarius
 
Регистрация: 02.09.2007
Сообщений: 226
Вы сказали Спасибо: 370
Поблагодарили 256 раз(а) в 53 сообщениях
По умолчанию

Цитата:
Сообщение от Messiah Посмотреть сообщение
Тогда я не понимаю, что нужно вообще, и какая цель преследуется?
А что значение var memCount изменить не судьба?
Цель:просто запустить.Хотел проверить слух,что это обманка,а не онлайн счетчик зарегестрировавшихся вконтакте.Слух подтвердил,запустив его.

var memCount менял,поэтому и сказал,что до 100 000 работает не корректно,поэтому я в вар и поставил минимальной число,с которго счетчик работает нормально.
Antarius вне форума  
Старый 09.11.2009, 00:55   #20
Pitty
Местный
 
Регистрация: 26.04.2006
Адрес: Удомля, гдежещё
Сообщений: 1,981
Вы сказали Спасибо: 676
Поблагодарили 257 раз(а) в 167 сообщениях
По умолчанию

Цитата:
Сообщение от antarius Посмотреть сообщение
Цель:просто запустить.Хотел проверить слух,что это обманка,а не онлайн счетчик зарегестрировавшихся вконтакте.Слух подтвердил,запустив его.

Var memcount менял,поэтому и сказал,что до 100 000 работает не корректно,поэтому я в вар и поставил минимальной число,с которго счетчик работает нормально.
На самом деле этот счётчик в контакте может работать достаточно корректно.
Обратите внимание на переменные, определяющие начало счёта и скорость счёта. Попробуйте посмотреть код этого счётчика в разные дни. Вы будете приятно удивлены, что эти цифры меняются....
По секрету могу сказать, как в некоторых технических системах определяется скорость. Возьмём простой пример. Пусть на оси вращается один большой зуб и 36 маленьких, расположены равномерно по окружности. Мы можем определить только положение (момент) большого зуба.
Вопрос: как определить моменты прохода мимо датчика маленьких зубьев (датчик их не чувствует, он чувствует только большой зуб).... Если за пару дней ответа не будет, напишу как на самом деле делается. В)
__________________
I never saw a wildthing sorring for itself.
A small bird will drop frozen dead without ever felt sorry for itself.
Pitty вне форума  
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 13:39. Часовой пояс GMT +3.


Для улучшения работы сайта и его взаимодействия с пользователями мы используем файлы cookie. Продолжая работу с сайтом, Вы разрешаете использование cookie-файлов. Вы всегда можете отключить файлы cookie в настройках Вашего браузера.
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot