|
|
|
| На одном из сайтов увидел внизу такую надпись:
"Сейчас на сайте ххх посетителей".
И я такую же хочу!
Может, для этого надо к счетчику чего-нибудь добавить? | |
|
|
|
|
|
|
|
для: Владимир55
(12.01.2006 в 16:06)
| | В архиве всё написано что к чему 100% работает!
Блин вот я умница =))))))))
Удачи =) | |
|
|
|
|
|
|
|
для: Panker
(12.01.2006 в 16:19)
| | Спасибо, получилось!
Только я не понял, как устанавливать доступ к файлам. Если я запрашиваю свойства файла, то мне предоставляется таблица 3х3:
чтение - запись - выполнение
владелей
группа
все пользователи
Я не понял, как здесь установить права доступа:
на саму папку - 711 (или 755)
на файл online.php - 444 (или 644)
на файл online.dat - 600 (или 666)
Поэтому поставил всем "птички" во всех клетках, и все заработало.
А как это сделать корректно?
И еще вопрос.
Ваша система считает всех посетителей, или только тех, кто читает главную страницу, на которой и установлен скрипт? | |
|
|
|
|
|
|
|
для: Владимир55
(14.01.2006 в 22:35)
| | Вопрос совсем ушел в небытие... | |
|
|
|
|
|
|
|
для: Владимир55
(16.01.2006 в 21:13)
| | Смутила фраза "Спасибо, получилось!".
В UNIX права доступа выставляются для трёх групп:
владельца файла,
группы в которую входит владелец файла,
всех остальных
Права доступа могут быть на чтение (4), на запись(2) и на исполнение (1) файла. Для разрешения чтения и записи в файл используется цифра 6 (2+4 = 6), для предоставления полного доступа используется цифра 7 (1+2+4=7).
Для файлов наиболее приемлемые права доступа: чтение и запись для владельци и чтение для всех остальных - 644. Для того, чтобы иметь возможность "заходить" в директорию, для последних необходимо выставить права доступа и на исполнение, поэтому для них следует выставлять - 755.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=158 | |
|
|
|
|
|
|
|
для: cheops
(17.01.2006 в 02:38)
| | Спасибо, cheops! Я с этими правами давно хотел разобраться... Теперь, с Вашей помощью, удалось!
А теперь может быть Вы выскажете свое мнение о том, всех ли посетителей сайта считает эта программа? Или только тех, кто на главной странице, на которой установлен вывод результатов?
Сам я с алгоритмом не справился... | |
|
|
|
|
|
|
|
для: Владимир55
(17.01.2006 в 12:40)
| | Скрипт считает только тех посетителей, которые посещают страницы, к которым скрипт подсчёта подсоединён. Т.е. если необходимо учитывать посетителей остальных страниц - следует присоединить скрипт и к ним. | |
|
|
|
|
|
|
|
для: cheops
(17.01.2006 в 14:02)
| | Дорогой cheops!
Но как же его подключить к другим страницам?
В инструкции по установке скрипта написано вот что:
1. Закачайте файлы на сервер в любую папку.
2. Установите следующие права доступа:
на саму папку - 711 (или 755)
на файл online.php - 444 (или 644)
на файл online.dat - 600 (или 666)
3. Вставьте на страницу, где хотите видеть кол-во посетителей, следующий код:
<script language="JavaScript" src="http://you_url/you_dir/online.php"></script>
например: <script language="JavaScript" src="http://raven.km.ru/online/online.php"></script>
А сам скрипт, фактически, состоит из одного файла online.php. Как работает этот файл, понять я не смог, сколько ни старался! Я приложил его к этому письму на всякий случай.
Может быть Вы посоветуете, как же подключить к учету все страницы сервера? Видимо, на каждую странцу, надо поставить какой-то скрипт, но какой? А может быть придется изменить и файла online.php? | |
|
|
|
|
|
|
|
для: Владимир55
(18.01.2006 в 13:11)
| | так собственно "<script language="JavaScript" src="http://you_url/you_dir/online.php"></script>" - это и есть скрипт. Вставляете его во все страницы, которые должны отображать к-во посетителей. | |
|
|
|
|
|
|
|
для: Loki
(18.01.2006 в 13:24)
| | "Вставляете его во все страницы, которые должны отображать к-во посетителей". - И при этом на каждой странице будет СУММАРНОЕ число посетителей, правильно я понял?
Или только тех, что на этой странице? | |
|
|
|
|
|
|
|
для: Владимир55
(18.01.2006 в 13:52)
| | Всех пользователей на сайте. | |
|
|
|
|
|
|
|
для: Loki
(18.01.2006 в 14:00)
| | С чувством глубокого удовлетворения сообщаю, что я, наконец-то, разобрался с этой штучкой, и нахожу её великолепной и очень удобной!
Большое спасибо всем, кто мне помог! | |
|
|
|
|
|
|
|
для: Владимир55
(18.01.2006 в 14:59)
| | А вот если один посетитель откроет две страницы, он будет зачтен за два посетителя? | |
|
|
|
|
|
|
|
для: Владимир55
(20.01.2006 в 13:47)
| | Я ещё вот чего не понял: если посетитель находится на транице долго (у меня есть случаи 10 часов!), то его присутствие учитывается? Или спустя какое-то конкретное время посетитель считаеся ушедшим в любом случае?
А вот если один посетитель откроет две страницы, он будет зачтен за два посетителя? | |
|
|
|
|
|
|
|
для: Владимир55
(20.01.2006 в 13:47)
| | При использовании сессий нет. | |
|
|
|
|
|
|
|
для: cheops
(20.01.2006 в 14:56)
| | А при использовании программы, присланной в архиве Panker ?
С этой программой тоже одни посетитель на двух страницах считается за одного? И даже если он на сайте коуглые сутки сидит, он тоже учитается?
Или в программе Panker не так? | |
|
|
|
|
|
|
|
для: Владимир55
(20.01.2006 в 15:09)
| | Посетитель на двух страницах считается за одного. Учитываются все, кто заходил на сайт в течение последних 10 минут (регулируется строкой time()-600; 600 - это интервал в секундах) | |
|
|
|
|
|
|
|
для: Loki
(20.01.2006 в 15:58)
| | вот это мне и непонятно - "учитываются все, кто заходил в течение последних 10 мин."
вот один зашел, его посчитали и он будет 10 минут считаться за "живого", даже если
сразу ушел? | |
|
|
|
|
|
|
|
для: elenaki
(20.01.2006 в 16:24)
| | Совершенно верно.
Серверу послали запрос, он отдал страницу и забыл о существовании пользователя - между ними все дела закончились... Можно считать что пользователь будет полученную страницу читать 3 минуты, 10 или даже целый час. Но проверить мы это (сравнительно честными способами) не можем. | |
|
|
|
|
|
|
|
для: Loki
(20.01.2006 в 16:33)
| | а если он зашел и заснул (никуда больше не нажимает, никуда не переходит), как его
считает? десять минут считает за "живого", а потом выкидывает? а сессия-то его еще не
закончена... и что будет, когда он проснется? | |
|
|
|
|
|
|
|
для: elenaki
(20.01.2006 в 16:45)
| | Получается, что спящий приравнивается к ушедшему...
А вот в том скрипте, что предложил ДДР, "информация в сессиях хранится пока не закрыт браузер или 1440 секунд".
Правда, я его не пробовал и даже не пойму, как он работает. | |
|
|
|
|
|
|
|
для: elenaki
(20.01.2006 в 16:45)
| | так не вопрос - можно прировнять к сроку жизни сессии. ее жизнь ведь тоже настраивается. и, между прчим, отслеживается по тем же правилам - 20 минут не рыпаешься - сессию прибивают. | |
|
|
|
|
|
|
|
|
для: cheops
(13.01.2006 в 19:29)
| | Спасибо, cheops!
Я взял на заметочку, потому что сразу разобраться не смог... Мне эти базы - бр-р-р-р! Хотя понимаю, что это очень правильное, грамотное и прогрессивное решение, просто я к этому ещё не готов! | |
|
|
|
|
|
|
|
для: Владимир55
(14.01.2006 в 22:29)
| |
>На одном из сайтов увидел внизу такую надпись:
>"Сейчас на сайте ххх посетителей".
>И я такую же хочу!
Пишите:
Сейчас на сайте <b>xxx</b> посетителей<br>
|
Ладно, шутка...=) | |
|
|
|
|
|
|
|
для: Unkind™
(14.01.2006 в 22:52)
| | <?php
/*
********************************************************************
* Название: Sad Raven's Online Counter *
********************************************************************
* Версия: 1.0 *
* Стоимость: бесплатный скрипт *
* Требования: PHP4 и выше *
* Платформа: любая *
* Язык: русский *
* Автор: Sad Raven (http://www.sad-raven.ru) *
********************************************************************
* Создан: 15 июня 2002 *
********************************************************************
*/
$data="log/online.dat";
$time=time();
$past_time=time()-600;
$readdata=fopen($data,"r") or die("Не могу открыть файл $data");
$data_array=file($data);
fclose($readdata);
if (getenv('HTTP_X_FORWARDED_FOR'))
$user = getenv('HTTP_X_FORWARDED_FOR');
else
$user = getenv('REMOTE_ADDR');
$d=count($data_array);
for($i=0;$i<$d;$i++)
{
list($live_user,$last_time)=explode("::","$data_array[$i]");
if($live_user!=""&&$last_time!=""):
if($last_time<$past_time):
$live_user="";
$last_time="";
endif;
if($live_user!=""&&$last_time!="")
{
if($user==$live_user)
{
$online_array[]="$user::$time\r\n";
}
else
$online_array[]="$live_user::$last_time";
}
endif;
}
if(isset($online_array)):
foreach($online_array as $i=>$str)
{
if($str=="$user::$time\r\n")
{
$ok=$i;
break;
}
}
foreach($online_array as $j=>$str)
{
if($ok==$j) { $online_array[$ok]="$user::$time\r\n"; break;}
}
endif;
$writedata=fopen($data,"w") or die("Не могу открыть файл $data");
flock($writedata,2);
if($online_array=="") $online_array[]="$user::$time\r\n";
foreach($online_array as $str)
fputs($writedata,"$str");
flock($writedata,3);
fclose($writedata);
$readdata=fopen($data,"r") or die("Не могу открыть файл $data");
$data_array=file($data);
fclose($readdata);
$online=count($data_array);
echo "На сайте : $online";
?> | |
|
|
|
|
|
|
|
для: ZetRider
(17.01.2006 в 13:19)
| | Помойму он уже всё понел сказал спасибо и всё )) что ещё грузить то его =)) | |
|
|
|
|
|
|
|
для: Владимир55
(12.01.2006 в 16:06)
| | Вот очень надёжный и простой пример. Скрипт работает только на сессиях, не используя даже БД.
<?Php
session_start();
define("MAX_IDLE_TIME", 3);
function getOnlineUsers(){
if ( $directory_handle = opendir( session_save_path() ) ) {
$count = 0;
while ( false !== ( $file = readdir( $directory_handle ) ) ) {
if($file != '.' && $file != '..'){
if(time()- fileatime(session_save_path() . '\\' . $file) < MAX_IDLE_TIME * 60) {
$count++;
}
} }
closedir($directory_handle);
return $count;
} else {
return false;
}}
echo 'Пользователей онлайн: ' . getOnlineUsers() . '<br />';
?>
|
Найдено и взято с: http://www.wmate.ru/ | |
|
|
|
|
|
|
|
для: DDK
(20.01.2006 в 13:57)
| | Прикольно!
вертелась в голове подобная идея, но так в код и не оформилась:) | |
|
|
|