Aby stworzyć prosty skrypt do śledzenia liczby aktualnie online użytkowników przeglądających stronę, można wykorzystać technologię JavaScript oraz backend w PHP. W tej instrukcji pokażę, jak to zrobić.
1. Tworzenie tabeli w bazie danych
Najpierw musisz stworzyć tabelę w bazie danych, aby przechowywać informacje o aktywnych użytkownikach. Oto przykładowe zapytanie SQL do stworzenia takiej tabeli:
CREATE TABLE online_users ( id INT AUTO_INCREMENT PRIMARY KEY, session_id VARCHAR(255) NOT NULL, last_activity DATETIME NOT NULL );
2. Skrypt PHP
Następnie utwórz plik PHP (np. track_online_users.php
), który będzie odpowiedzialny za aktualizację tabeli oraz zwracanie liczby aktualnie online użytkowników.
<?php $host = 'localhost'; // adres serwera $db = 'nazwa_bazy'; // nazwa bazy danych $user = 'użytkownik'; // użytkownik bazy danych $pass = 'hasło'; // hasło do bazy danych // Połączenie z bazą danych $conn = new mysqli($host, $user, $pass, $db); // Sprawdzenie połączenia if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Ustawienie strefy czasowej date_default_timezone_set('Europe/Warsaw'); // Sprawdzanie i aktualizacja sesji $session_id = session_id(); $current_time = date('Y-m-d H:i:s'); // Usunięcie użytkowników, którzy są offline dłużej niż 5 minut $expire_time = date('Y-m-d H:i:s', strtotime('-5 minutes')); $conn->query("DELETE FROM online_users WHERE last_activity < '$expire_time'"); // Dodanie/aktualizacja aktywnego użytkownika $conn->query("INSERT INTO online_users (session_id, last_activity) VALUES ('$session_id', '$current_time') ON DUPLICATE KEY UPDATE last_activity = '$current_time'"); // Liczenie aktualnie online użytkowników $result = $conn->query("SELECT COUNT(*) as count FROM online_users"); $row = $result->fetch_assoc(); echo $row['count']; $conn->close(); ?>
3. Skrypt JavaScript
Aby zaktualizować liczbę użytkowników online bez przeładowania strony, możesz użyć JavaScript (np. z wykorzystaniem AJAX). Dodaj poniższy kod JavaScript do swojej strony HTML:
<script> function updateOnlineUsers() { fetch('track_online_users.php') .then(response => response.text()) .then(data => { document.getElementById('online-users-count').innerText = data; }) .catch(error => console.error('Error:', error)); } // Aktualizuj co 30 sekund setInterval(updateOnlineUsers, 30000); updateOnlineUsers(); // Pierwsze wywołanie </script>
4. Wyświetlanie liczby użytkowników
Dodaj element HTML, w którym będziesz wyświetlać liczbę aktualnie online użytkowników:
<div> Aktualnie online użytkowników: <span id="online-users-count">0</span> </div>
5. Wymagania
- Upewnij się, że masz zainstalowany serwer PHP i bazę danych (np. MySQL).
- Skonfiguruj połączenie do bazy danych, podając odpowiednie dane w skrypcie PHP.
6. Testowanie
Po wykonaniu powyższych kroków otwórz stronę w przeglądarce. Liczba użytkowników online powinna być aktualizowana co 30 sekund.
To podejście jest podstawowe i można je rozwijać, na przykład dodając mechanizmy sesji czy bardziej zaawansowane zarządzanie użytkownikami.