Я написал скрипт для вывода активных пользователей на мой сайт ....
частью этого является подсчет уникальных ips в журнале, так как массив, который я использую для разделения строк / данных, выгружает активных пользователей из списка массивов через 5 минут .....
однако подсчет "3 онлайн-пользователей сейчас" не работает должным образом .....
это вроде работает .... когда кто-то просматривает страницу, он говорит, что есть 1 пользователь
допустим, я смотрю страницу .... 1 посетитель
затем пользователь 2 просматривает страницу .... 2 посетителя
но если я затем просматриваю другую страницу, на ней отображаются 3 пользователя .....
хотя я использую один и тот же ip для обоих запросов страниц ....
вот мой код
$data = file_get_contents('active-log.txt');
$break = "\r\n";
$lines = explode($break, $data);
foreach ($lines as $key => $value) {
$active_ip[] = $lines[$key][1];
}
$active_ip_count = array_unique($active_ip);
$active_users = (count($active_ip_count));
$ active_users - это переменная, которую я использую для отображения количества уникальных посетителей онлайн одновременно
заранее спасибо всем, кто может мне помочь, спасибо
....
РЕДАКТИРОВАТЬ
.....
вот пример сохраненного журнала ....
1328469393|157.55.39.84|g-book
1328469398|157.55.39.84|downloads
1328469400|157.55.39.84|badger
1328469404|157.55.39.84|home
1328469408|157.55.39.84|boneyard-dogs
первая часть - метка времени (чтобы удалить строку из массива, если метка времени старше 5 минут ... это нормально работает)
вторая часть ip
третья часть просматривается и новая строка создается с помощью \ r \ n
$ lines [$ key] [1] - это переменная для каждого ip в каждой строке ....
, поскольку я не совсем эксперт по php, при написании скриптов я тщательно тестирую их во время разработки, и каждый раз, когда добавляю новую строку скрипта, я выводлю данные, чтобы проверить, что я надеюсь, чтобы убедиться, что я делаю без ошибок ......
вот фрагмент кода, который я не вставил, так как не думал, что это необходимо ....
foreach($lines as $k=>$v) {
$lines[$k] = explode("|", $v); }
// echo $lines[0][0]; // now this is first array of first line .... line 2 / url would be - $lines[1][2]
это в моем коде, сразу после строки "$ lines = explode ($ break, $ data);" в моем коде