Создать ответ 
Скрипт, отображающий количество посетителей онлайн
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #1
Скрипт, отображающий количество посетителей онлайн
Создал данную тему, чтобы не развивать дискуссию в комментариях.

Итак, в продолжение обсуждения проблемы с неверной работой скрипта отображающего количество посетителей находящихся на сайте в данный момент Виктор написал:

Цитата:Проверил, всё совпадает Sad У меня сейчас вообще одна тестовая страница с Вашим кодом без изменений. Всё равно при каждом обновлении счётчик растёт.
Проверял на 2 компьютерах в IE7, IE9 и в Chrome 19.0.1084, одинаково. Файрвол отключал.
Видимо всё-таки что-то на сервере.

Проверьте права на файл, в который записываются идентификаторы сессий (возможно у Вас стоят права только на запись).

А на нашем сайте, если Вы обновляете страничку, счетчик посещений в самом верху тоже растет? Если нет, то проблема не в Вашем браузере а в настройках сервера.
02.06.2012 16:19:47
Найти все сообщения Цитировать это сообщение
c470ip Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Jun 2012
Сообщение: #2
RE: Скрипт, отображающий количество посетителей онлайн
(02.06.2012 16:19:47)Admin писал(а):  Проверьте права на файл, в который записываются идентификаторы сессий (возможно у Вас стоят права только на запись).
С правами всё в порядке, к тому же через >10 минут счётчик уменьшается.

(02.06.2012 16:19:47)Admin писал(а):  А на нашем сайте, если Вы обновляете страничку, счетчик посещений в самом верху тоже растет? Если нет, то проблема не в Вашем браузере а в настройках сервера.
У Вас всё в порядке Smile
Вот пытаюсь понять, какие настройки могут на это влиять. А можете показать кусок правильного php.ini в части настроек сессий?
02.06.2012 22:51:40
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #3
RE: Скрипт, отображающий количество посетителей онлайн
Скопировал часть php.ini файла в отдельный файл и разместил на нашем сайте - part-php.rar.

Раз у Вас не получается с сессиями, то может Вам лучше попробовать идентифицировать посетителей по IP а не по session_id()?
02.06.2012 23:02:22
Найти все сообщения Цитировать это сообщение
c470ip Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Jun 2012
Сообщение: #4
RE: Скрипт, отображающий количество посетителей онлайн
Чертовщина какая-то... сделал на пробу специальную страницу, на которой кроме Вашего кода вообще ничего нет... и она работает норм! Более того, после захода на неё начинает корректно работать (перестаёт увеличиваться при обновлении) счётчик и на той странице, на которую я его пытался вставить!
Но стоит выждать полчасика и сразу обратиться к той странице, как опять начинается рост счётчика при нажатии F5. Ничего не понимаю уже.

По IP идентифицировать не получится, т.к. многие пользователи могут заходить с одного адреса.

P.S. Уточнение после экспериментов: голый скрипт (т.е. чистое php из примера) всегда работает нормально. Стоит добавить к нему "посторонние" элементы (например <html>,<title>,<head>,<body>) – и счётчик начинает увеличиваться при каждом обновлении страницы. Страница с расширением .php.
(Последний раз сообщение было отредактировано 03.06.2012 в 01:02:45, отредактировал пользователь c470ip.)
02.06.2012 23:03:12
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #5
RE: Скрипт, отображающий количество посетителей онлайн
Обратите внимание на то, что сессию стартовать нужно в самом начале страницы (до тегов <html>,<title>,<head>,<body>).
Другими словами каждая страничка должна начинаться с session_start();

Еще в php.ini посмотрите значение "срока жизни" сессий (в секундах).
У нас оно установлено по умолчанию session.gc_maxlifetime = 1440

Возможно еще у Вас где-то кэширование включено и выдает что-то не то.
03.06.2012 13:49:08
Найти все сообщения Цитировать это сообщение
c470ip Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Jun 2012
Сообщение: #6
RE: Скрипт, отображающий количество посетителей онлайн
Действительно, оказалось session_start() нужно ставить строго в самое начало. Теперь всё работает как часики. Большое спасибо Вам за полезный скрипт и содействие!
03.06.2012 19:58:00
Найти все сообщения Цитировать это сообщение
странник51 Не на форуме
Рядовой
*

Сообщений: 1
У нас с: Apr 2020
Сообщение: #7
RE: Скрипт, отображающий количество посетителей онлайн
На Денвере все работало корректно, на XAMPP в Firefox все нормально, а на остальных браузерах с каждым кликом растет число посетителей.
Похоже, сказывается перевод на PHP 7.3
04.04.2020 20:09:48
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #8
RE: Скрипт, отображающий количество посетителей онлайн
Перенес комментарий пользователя Untercop:

Цитата:Здравствуйте. Я добавил счётчик в отдельный файл php и на странице сделал обновление через
<div class="stat" id = 'counter'>
</div>
<script>
var loadtime = 3000; // время обновления 3 sec
function mail(){
$.ajax({
type: "POST",
url: "./stat.php",
data: {load: '1'},
success: function(msg){
document.getElementById('counter').innerHTML = msg;
}
});
setTimeout(mail, loadtime);
};
mail();
</script>

На PHP 7.1 работает, на новых не работает
"sizeof():Parameter must be an array or an object that implements Countable in"
Понимаю, что надо дать массив или объект, но в PHP не силён. Не подскажете, что где изменить?
21.03.2021 11:46:27
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru