x users online simpel !!!!

Plaats reactie
Gebruikersavatar
Erik
Elite Poster
Elite Poster
Berichten: 1321
Lid geworden op: 15 sep 2002, 02:46
Uitgedeelde bedankjes: 2 keer
Bedankt: 18 keer

hallo,

op vele websites zie je dit tegenwoordig.Ik bedoel het aantal gebruikers dat op de site zit. hoe doen die da ? simpel

Code: Selecteer alles

<?php
$server="localhost";
$db_user="mysql_user";
$db_pass="mysql_pass";
$db="databasename";
$ip=$_SERVER['REMOTE_ADDR'];
$timeoutseconds=300;
$timestamp = time();
$timeout=$timestamp-$timeoutseconds;
mysql_connect($server,$db_user,$db_pass) or die (mysql_error());
mysql_select_db($db);
$insert=mysql_query("INSERT INTO useronline VALUES ('$timestamp','$ip','$PHP_SELF')");
if(!$insert){
   die("useronline insert failed");
}
$delete=mysql_query("DELETE FROM useronline WHERE timestamp<$timeout");
if(!$delete){
   die("could not delete information from the database");
}
$result=mysql_query("SELECT DISTINCT ip FROM useronline WHERE file='$PHP_SELF'");
if(!$result){
   die("database selection error");
}
$user=mysql_num_rows($result);

mysql_close();
if($user ==1) {
   print("<b>$user</b>user online\n");
}else{
   print("<b>$user</b> users online\n");
}
?>


dan moet je een MySQL database table maken

Code: Selecteer alles

CREATE TABLE useronline ( 
   timestamp int(15) DEFAULT '0' NOT NULL,
   ip varchar(40) NOT NULL,
   file varchar(100) NOT NULL,
   PRIMARY KEY (timestamp),
   KEY ip (ip),
   KEY file (file)
);


in elk bestand dat je nu de aantal gebruikers wilt tonen dat online is op de site voeg je dit bestand in eg

Code: Selecteer alles

<?php include("filename.php") ?>


voila ....
Registered Linux user #286313
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

Dat klopt maar er is nooit een site dat het betrouwbaar kan weergeven, het gaat altijd om een tijdspanne van moment x in het verleden tot nu en die tijdspanne kan lang zijn en dus een vertekend beeld geven :)
Gebruikersavatar
Pi R²
Elite Poster
Elite Poster
Berichten: 811
Lid geworden op: 03 jan 2003, 17:15
Locatie: Sint-Niklaas
Contacteer:

ge kunt ervanuit gaan dat de mensen minstens 5 minuten op uwe site blijven rondhangen :wink:
Lang Leve Mijn Eigen! Het geheim voor een lang leven: niet stoppen met ademen
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

of ge kunt dat hopen :p
The Oddity
Elite Poster
Elite Poster
Berichten: 5008
Lid geworden op: 15 sep 2002, 17:58
Locatie: Belgium, Ghent
Contacteer:

Is idd wel steeds nogal suggestief, maar kom het is een mooi scriptje van Erik ;-)

Voor realistic data zou ge continuous feed ofzo moeten hebben :)
Stat-counters enzo.. geven ook verkeerd beeld weer eh dan...is ook op moment x eh :)

Er zijn maybe mensen die dat wel kunnen gebruiken op hun site ofzo :).
Of er oplossing voor een ander probleem in zien.
I love it when a plan comes together!
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Bij ASP wordt een sessie gestart van het moment dat ge een pagina opent. Op zo'n systeem zou ge kunnen kijken hoe lang die sessie bestaat, dan hebt ge denk ik een vrij realistisch beeld van het actuele aantal bezoekers.
Gast

je zou in php ook sessies kunnen gebruiken, en de open sessies tellen. voordeel is dat zo'n sessie reeds voor de timeout kan afgesloten worden, mits de gebruiker zich afmeldt of iets dergelijks.
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Bwa, als je al een vrij correct beeld kan hebben van gebruikers op een site in pakweg de laatste 5 minuten lijkt mij dat toch al meer dan voldoende. Ik kan geen reden bedenken waarom een dergelijke statistiek zó erg nauwkeurig moet zijn dat het écht realtime is.
Gebruikersavatar
Massachusetts
Plus Member
Plus Member
Berichten: 199
Lid geworden op: 18 jul 2003, 15:44
Locatie: Tongeren, Belgium

Ik vroeg me al hoe ze dat deden. Allee dan, nu weet ik dat ook hoe ze dat doen.
Make a wish, make a move, make up your mind, you can choose.
Gebruikersavatar
Erik
Elite Poster
Elite Poster
Berichten: 1321
Lid geworden op: 15 sep 2002, 02:46
Uitgedeelde bedankjes: 2 keer
Bedankt: 18 keer

hallo,

hier is een update dat u toelaat de datum en "timestamp" te tonen samen mee het aantal online users helemaal vanboven zet je deze php code

Code: Selecteer alles

$now=date("l dS F Y H:i:s A");


dan waar je de online users toon dit vervang je door

Code: Selecteer alles

if($user ==1) {
   print("<b>$user </b> user online at $now");
}else{
   print("<b>$user</b> users online at  $now");
}



als u meer informatie wilt over het "formateren" van date en of timestamps kan u eens kijken op deze site
Registered Linux user #286313
Plaats reactie

Terug naar “Development”