imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 16.11.2003, 17:08     # 1
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
статистика посещений

счетчик я деалть научился, теперь хочется чего-нибудь большего. Как, например, фиксировать, сколько времени конкретный посетитель провел на странице? Наверное это очень просто, но ничего не могу придумать, используя чистый PHP. Подскажите пожалуйсто как это сделать. И еще, вопросик: обычный счетчик фиксирует посещения определенной страницы, а как сделать, чтобы считались обращения ко всем страницам сайта?
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 16.11.2003, 18:50     # 2
lanix
::VIP::
 
Аватар для lanix
 
Регистрация: 09.05.2002
Адрес: Lithuania
Сообщения: 591

lanix Известность не заставит себя ждать
сколько времени конкретный посетитель провел на странице?
наверное с использованием кукиз и ДжаваСрипт

обычный счетчик фиксирует посещения определенной страницы, а как сделать, чтобы считались обращения ко всем страницам
создать код счетчик ... сохранить под counter.php и далее в каждой странице прописывать include("counter.php");

если это не в целях учебы, а срочняк надо то может лучше зарегиться в www.hotlog.ru - там очень хорошая статистика
lanix вне форума  
Старый 16.11.2003, 20:29     # 3
V0iD
Junior Member
 
Аватар для V0iD
 
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138

V0iD Путь к славе только начался
Время определить довольно просто. Для каждого юзера(ip) сохранять результат time(), если разница между текущим таймстемпом и последним не больше, для примера, 15*60 (15 мин), то прибавлять разницу к времени, проведенному на сайте.
__________________
Завтра будет.
Лучше.
V0iD вне форума  
Старый 17.11.2003, 00:00     # 4
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
V0iD :Я тупой немного, поясни подробнее плиз, это на чисом PHP сделать можно? А то я так понял, что нужно пстоянно отсылать с клиентской машины текушее время и сравнивать его с временем прихода посаетителя, а это уже , повидимому ,без Java Script не обойдется.
В особенности меня порадует кусочек программы, так легче разобраться.
lanixov :мне не срочно, я просто учусь. Хотелось бы сделать на чистом PHP, если это возможно. Ставить один и тот же счетчик на каждую страницу не очень привлекательно, да и к тому же как тогда узнать какая страница сайта загружалась чаще?

Спасибо за участие.
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 17.11.2003, 01:10     # 5
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
CEO
смотри.... для каждого посетителя у тебя будет например запись в mysql
там ты сохраняешь время последней активности... при кажой загрузке страницы (include counter.php.... ты сравниваешь время, разницу прибаляешь к текущему времени и обновляешь ремя последней активности, теряется правда время, которое он провёл на странице перед тем как покинуть сайт, но это без js не сделать

Добавлено через 1 минуту:
Цитата:
Первоначальное сообщение от Stasik
CEO
смотри.... для каждого посетителя у тебя будет например запись в mysql
там ты сохраняешь время последней активности... при кажой загрузке страницы ( include counter.php; ).... ты сравниваешь время, разницу прибаляешь к текущему времени и обновляешь ремя последней активности, теряется правда время, которое он провёл на странице перед тем как покинуть сайт, но это без js не сделатьюю а в js это тоже 2 строки... или 3
__________________
Всё будет хорошо!
Stasik вне форума  
Старый 17.11.2003, 02:48     # 6
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
Stasik :
>при кажой загрузке страницы (include counter.php.... ты сравниваешь время, >разницу прибаляешь к текущему времени и обновляешь ремя последней >активности
С этим разобрался, и даже можно обойтись без записи MYSQL, а просто в обычный файл, но вот загвоздка, если посетитель побывал только на одной странице и ничего больше не загружал, время его ухода я узнать никак не смогу или смогу?
Дай пожалуста эти 2-3 волшебгые строчки. А то я JavaScrip знаю еще хуже чем PHP.
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 17.11.2003, 16:49     # 7
lanix
::VIP::
 
Аватар для lanix
 
Регистрация: 09.05.2002
Адрес: Lithuania
Сообщения: 591

lanix Известность не заставит себя ждать
Цитата:
больше не загружал, время его ухода я узнать никак не смогу или смогу?
это , мне кажется , не возможно :-(
lanix вне форума  
Старый 18.11.2003, 00:29     # 8
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
возможно всё )

короче делаешь iframe размером 1х1.. или например так

<img src="void.gif" name="counter" height="1" width="1">

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

вот... а вот и волшебные строка
<body onclose="javascript:document[counter].src='count.php;'">

вот... count.php может тож картинку возвращать, а может и нет..... это по вкусу


не знаю... может и не будет работать... хотя по идее должно... если не будет, можно открыть маленькое окошко с count.php и по загрузке закрыть....
мож и напишу потом
__________________
Всё будет хорошо!
Stasik вне форума  
Старый 18.11.2003, 15:07     # 9
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
Stasik : спасибо, попробую сделать.
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 20.11.2003, 15:50     # 10
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
Stasik :Сделал, как ты посоветовал -- не работает , хотя и ошибок не выдает. Попробал так же сделать это так: на JP узнавать время
и помещать его в поля формы, а потом на событии закрытия вызывать метод отправки этой формы, но это тоже не работает.
Может попробовать загружать в отдельном окне count.php? Как это сделать?
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 20.11.2003, 21:32     # 11
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
<body onclose="javascript:window.open("count.php", "tinyWindow", 'width=1,height=1');
">


а count.php должен выдавать

<script>
window.close();
</script>
__________________
Всё будет хорошо!
Stasik вне форума  
Старый 20.11.2003, 21:41     # 12
V0iD
Junior Member
 
Аватар для V0iD
 
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138

V0iD Путь к славе только начался
Имхо такая организация каунтера будет раздражать посетителей. Лучше перенести это в нулевой iframe. А на OnClose сделать релоад во фрейме. Хотя так тоже может не работать - по причине, аналогичной примеру с гифом...
__________________
Завтра будет.
Лучше.
V0iD вне форума  
Старый 21.11.2003, 14:24     # 13
medved2002
Guest
 
Сообщения: n/a

Гммм. а вариант писать джава скриптом в куки время ухода и на следующем посещении считывать? Конечно есть вариант что пользователь больше не появиться, но чо делать
 
Старый 22.11.2003, 19:51     # 14
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
Странно, но это все равно не работает на событии onclose, но как это ни странно
все работает как надо, если использовать событие onload -- при загрузке страницы
ничего не срабатывает, когда закрывается окно документа, появляется всплывающее окно.
Есть правда одно неудобство -- при нажатии обновления страницы тоже срабатывает событие onload.

А что если сделать так: во всплывающем окне предложить посетителю выбрать: выводить это окно в
следующий раз или нет. Если посетитель случайный, то его время все равно будет зафиксированно,
если же он выберет, что бы это окно не выводилось, тогда в дальнейшем фиксировать проведеннное
им время через куки. Как мне задействовать эти куки?

Всем спасибо за помошь.
Если хоите, можете посмотреть, что пока что получилось:http://infome.fatal.ru/proba.shtml
Или скачать исходник:
Вложения
Тип файла: zip qwe.zip (1.4 Кбайт, 5 просмотров - Кто скачивал? )
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 22.11.2003, 21:10     # 15
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
а зачем тебе такая точность, извини?
__________________
Всё будет хорошо!
Stasik вне форума  
Старый 23.11.2003, 03:19     # 16
V0iD
Junior Member
 
Аватар для V0iD
 
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138

V0iD Путь к славе только начался
Время, проведенное на сайте юзером, является самой объективной статистикой сайта. Ни хиты, ни килобайты, ни страницы рядом не лежат... Хотя конечно всегда приятно знать, что юзер провел все свое время не только на главной странице .
__________________
Завтра будет.
Лучше.
V0iD вне форума  
Старый 23.11.2003, 05:59     # 17
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
ну... я вот часто открываю окно.. и забываю в таскбаре... на сутки.... а потом ещё похожу.. туды сюды... а то обьективно
__________________
Всё будет хорошо!
Stasik вне форума  
Старый 23.11.2003, 14:27     # 18
V0iD
Junior Member
 
Аватар для V0iD
 
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138

V0iD Путь к славе только начался
Stasik
такое поведение будет считаться за 2 посещения. Ведь каунтер считает разницу...
__________________
Завтра будет.
Лучше.
V0iD вне форума  
Старый 23.11.2003, 15:54     # 19
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
дык и будет разица 24 часа или типа того... хотя

если тебе так надо.. можно просто катинку 1х1 через JS раз в минуту обновлять.....
__________________
Всё будет хорошо!
Stasik вне форума  
Старый 01.12.2003, 15:50     # 20
smap
Junior Member
 
Аватар для smap
 
Регистрация: 14.10.2002
Адрес: Samara
Сообщения: 84

smap Путь к славе только начался
"Странно, но это все равно не работает на событии onclose"

странно, откуда ты взял такое событи в JavaScript?

вроде всегда было onunload ))

ето так ) для справки )

Добавлено через 5 минут:
держы вообщем мини скриптяра, не доделал я его немного, но всеже ... может пригодиться

<script language="JavaScript" type="text/javascript">

var millinow, blur_mill

function window.onload() {
var now = new Date()
millinow = now.getTime()/1000

}

function window.onblur() { // типо если человек не смотрит страницу
var blur_m = new Date()
blur_mill = blur_m.getTime()/1000
}

function window.onfocus() { // а вот он вернулся
var l = new Date()
var m = l.getTime()/1000

if (!isNaN(blur_mill)) {
millinow = millinow + m - blur_mill;
alert("Вы отсутствовали на странице:"+loadTime+"секунд");
}

}

function window.onunload() {
var later = new Date()
var millilater=later.getTime()/1000
var loadTime=(Math.floor((millilater-millinow)*1000))/1000
alert("Вы провели на странице:"+loadTime+"секунд");
}
// by SMAP
</script>
smap вне форума  

Опции темы

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

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

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


Часовой пояс GMT +4, время: 14:19.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.