[PHP] Aktualna liczba osób na stronie, czyli licznik online

W tym wpisie stworzymy prosty licznik osób online oparty na bazie danych.

<?php

$host = 'localhost';
$db = 'users_online';
$user = 'username';
$pass = 'password';

try {
    
    $pdo = new PDO('mysql:host=$host;dbname=$db;charset=utf8' , $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $ipAddress = $_SERVER['REMOTE_ADDR'];
    $entryTime = date('Y-m-d H:i:s');

    // Dodajemy nowego użytkownika lub aktualizacja czasu wejścia
    $sth = $pdo->prepare('INSERT INTO online_users (ip_address, entry_time) VALUES (?, ?) ON DUPLICATE KEY UPDATE entry_time = ?');
    $sth->execute([$ipAddress, $entryTime, $entryTime]);

    // Sprawdzamy, którzy użytkownicy są online
    $currentTime = date('Y-m-d H:i:s');
    $sth = $pdo->prepare('SELECT ip_address FROM online_users WHERE entry_time > DATE_SUB(?, INTERVAL 5 MINUTE)');
    $sth->execute([$currentTime]);
    $users_online = count($sth->fetchAll(PDO::FETCH_ASSOC));

}

catch(PDOException $e) {

    echo 'Błąd: ' . $e->getMessage();

}

Nastepnie możemy wyświetlić liczbę użytkowników online:

<?php

echo $users_online;

Komentarze

Popular

[C++] Jak obliczyć pole i obwód trapezu?

[HTML] Jak wyśrodkować tekst?

[PHP|HTML] Odświeżenie strony