Добро пожаловать, Гость!
Сколько посетителей онлайн
PHP/MYSQL: Уроки | Сколько посетителей онлайн
Ak47res1 :
<?php
session_start();
//выделяем уникальный идентификатор сессии
$id = session_id();
if ($id!="")
{
//текущее время
$CurrentTime = time();
//через какое время сессии удаляются
$LastTime = time() - 600;
//файл, в котором храним идентификаторы и время
$base = "session.txt";
$file = file($base);
$k = 0;
for ($i = 0; $i < sizeof($file); $i++) {
$line = explode("|", $file[$i]);
if ($line[1] > $LastTime) {
$ResFile[$k] = $file[$i];
$k++;
}
}
for ($i = 0; $i<sizeof($ResFile); $i++) {
$line = explode("|", $ResFile[$i]);
if ($line[0]==$id) {
$line[1] = trim($CurrentTime)."n";
$is_sid_in_file = 1;
}
$line = implode("|", $line); $ResFile[$i] = $line;
}
$fp = fopen($base, "w");
for ($i = 0; $i<sizeof($ResFile); $i++) { fputs($fp, $ResFile[$i]); }
fclose($fp);
if (!$is_sid_in_file) {
$fp = fopen($base, "a-");
$line = $id."|".$CurrentTime."n";
fputs($fp, $line);
fclose($fp);
}
}
?>
Принцип работы данного скрипта довольно прост.
У каждого посетителя есть свой идентификатор сессии session_id(). При заходе на сайт мы выделяем этот идентификатор и ищем его в нашей базе (в нашем случае это файл session.txt в корне сайта). Если такого идентификатора сессии нет, то помещаем его в наш текстовый файл, дополнительно записав текущее время через разделитель "|". После обновления страницы пользователем мы вновь выделяем идентификатор сессии, проверяем его наличие в файле session.txt. Если такого идентификатор сессии нет, то добавляем, если есть - обновляем время (заменяем на текущее время).
<?php
$base = "session.txt";
?>
енем составляет больше 10 минут (или 600 секунд). Данный интервал можно изменить на свое усмотрение, изменив значение в строке:
PHP код:
<?php
$LastTime = time() - 600;
?>
Для вывода в нужном месте информации о количестве посетителей, находящихся в данный момент на Вашем сайте, используйте следующий код:
<?php
echo "Сейчас на сайте: <b>".sizeof(file($base))."</b>";
?>
Сколько посетителей онлайн
21 Дек 2013<?php
session_start();
//выделяем уникальный идентификатор сессии
$id = session_id();
if ($id!="")
{
//текущее время
$CurrentTime = time();
//через какое время сессии удаляются
$LastTime = time() - 600;
//файл, в котором храним идентификаторы и время
$base = "session.txt";
$file = file($base);
$k = 0;
for ($i = 0; $i < sizeof($file); $i++) {
$line = explode("|", $file[$i]);
if ($line[1] > $LastTime) {
$ResFile[$k] = $file[$i];
$k++;
}
}
for ($i = 0; $i<sizeof($ResFile); $i++) {
$line = explode("|", $ResFile[$i]);
if ($line[0]==$id) {
$line[1] = trim($CurrentTime)."n";
$is_sid_in_file = 1;
}
$line = implode("|", $line); $ResFile[$i] = $line;
}
$fp = fopen($base, "w");
for ($i = 0; $i<sizeof($ResFile); $i++) { fputs($fp, $ResFile[$i]); }
fclose($fp);
if (!$is_sid_in_file) {
$fp = fopen($base, "a-");
$line = $id."|".$CurrentTime."n";
fputs($fp, $line);
fclose($fp);
}
}
?>
Принцип работы данного скрипта довольно прост.
У каждого посетителя есть свой идентификатор сессии session_id(). При заходе на сайт мы выделяем этот идентификатор и ищем его в нашей базе (в нашем случае это файл session.txt в корне сайта). Если такого идентификатора сессии нет, то помещаем его в наш текстовый файл, дополнительно записав текущее время через разделитель "|". После обновления страницы пользователем мы вновь выделяем идентификатор сессии, проверяем его наличие в файле session.txt. Если такого идентификатор сессии нет, то добавляем, если есть - обновляем время (заменяем на текущее время).
<?php
$base = "session.txt";
?>
енем составляет больше 10 минут (или 600 секунд). Данный интервал можно изменить на свое усмотрение, изменив значение в строке:
PHP код:
<?php
$LastTime = time() - 600;
?>
Для вывода в нужном месте информации о количестве посетителей, находящихся в данный момент на Вашем сайте, используйте следующий код:
<?php
echo "Сейчас на сайте: <b>".sizeof(file($base))."</b>";
?>
Комментарии:
Zed 21 Дек 2013
Ak47res1 (21 Дек 2013):
VoronoZ, здесь куков нет
Ak47res1, знаю.можно куки в файл к сессии дописать.....VoronoZ, здесь куков нет
Ak47res1 21 Дек 2013
Автор темы
Автор темы
Zed (21 Дек 2013):
Это чтоб в базу не лазить что ли?
VoronoZ, Да,и вообще если будут досить на базу ничего не влияет.Это чтоб в базу не лазить что ли?