$mysql_port = 3306; // dit is de standaard MySQL port
$max_time = 300; // de timeout... Hoe lang is iemand non-actief totdat
// hij/zij uit de database wordt verwijderd? (in sec.)
/* Vanaf hier gaat de rest automatisch */
$db = @mysql_connect($mysql_host . ":" . $mysql_port,$mysql_user,$mysql_pwd)
or die ("Could not connect to MySQL server!");
mysql_select_db($mysql_db,$db)
or die ("Could not select database " . $mysql_db);
if (!$TABLE_EXISTS)
mysql_query("CREATE TABLE users_online (id INT NOT NULL auto_increment PRIMARY KEY, sess_id VARCHAR(100), time DATETIME)",$db);
session_start();
$id = session_id();
$query = mysql_query("SELECT * FROM users_online WHERE sess_id = '$id'",$db);
if (mysql_affected_rows() > 0)
mysql_query("UPDATE users_online SET time = now() WHERE sess_id = '$id'",$db);
else
mysql_query("INSERT INTO users_online VALUES(0,'$id',now())",$db);
$now = date("U") - $max_time; // $now = UNIX timestamp - $max_time
$now = date("Y-m-d H:i:s",$now);
mysql_query("DELETE FROM users_online WHERE time < '$now'",$db);
$count_query = mysql_query("SELECT COUNT(*) as TOTAL FROM users_online",$db);
$user_count = mysql_result($count_query,0,"TOTAL");
?>
---------------------------------------
Insert dit ergens in de pagina waar je wilt laten zien hoeveel er online zijn :
Code:
1 2
online : <?php print $user_count ?>
Je hoeft geen mySQL table aan te maken. Het werkt prima! Ik gebruik het ook op mijn website!
Zet bovenaan je pagina ook nog ff dit om foutmeldingen te voorkomen:
Code:
1 2 3
<?php
session_start();
?>
Heb je een vraag? Stel 'm gerust.. Bericht is het laatst aangepast op 30-03 @ 10:44 door Admin
Dit heeft niks te maken met dit topic, als je deze code wil plaatsen kun je dat in een nieuw topic doen. Bericht is het laatst aangepast op 28-04 @ 19:32 door Admin