Hej
Jeg har prøvet en online tæller fra
http://www.phpuniverset.dk/show_artikels.phtml?ArtikelID=21&artik
el=Online.t%E6ller.i.PHP.&.MySQL.
Koden virker næsten perfekt.
Online tælleren skal slette ikke aktive brugere
efter 5 minuter, hvilket den ikke gør.
Hvad er fejlen i koden.
Her er online tælleren fra phpuni.
CREATE TABLE `online` (
`id` int(11) NOT NULL auto_increment,
`time` datetime NOT NULL default '0000-00-00 00:00:00',
`ip` varchar(20) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
<?php
/* Vi connecter til databasen. */
$connection = mysql_pconnect("host", "user", "pass");
mysql_select_db("database");
/* Brugerens ip-adresse gemmes i variablen $ip. */
$ip = $_SERVER['REMOTE_ADDR'];
/* Vi tjekker om brugeren allerede findes i tabellen. */
$tjek_ip = mysql_query("SELECT COUNT(*) AS antal FROM online
WHERE ip='$ip'") or die(mysql_error());
/* Hvis brugeren ikke findes i tabellen, vil brugeren blive
oprettet der, med den nuværende tid og brugerens ip. Hvis
brugerens tid allerede findes i tabellen, vil denne blot blive
opdateret. Der tages ikke højde for vekslende ip’er */
if(!mysql_result($tjek_ip,0)) {
mysql_query("INSERT INTO online (time, ip) VALUES (NOW(),'$ip')")
or die(mysql_error());
} else {
mysql_query("UPDATE online SET time=NOW() WHERE ip='$ip'") or
die(mysql_error());
}
//////////////////////HER ER FEJLEN////////////////////
/* Vi sletter alle brugere fra online-listen der ikke har været
aktive i 5 min. Jeg synes 5 min. er passende, men antallet af min
kan ændres ved simpelt at ændre 5 MINUTE til det antal min. man
ønsker. */
mysql_query("DELETE FROM online WHERE date_add(time,interval 5
MINUTE) < NOW()") or die(mysql_error());
/////////////////////////////////////////////////////////
/* Vi tæller antallet af brugere/rækker i tabellen */
$antal_online = mysql_query("SELECT COUNT(*) AS antal FROM
online") or die(mysql_error());
/* Vi udskriver det fundne antal brugere/rækker i en echo */
echo "Der er lige nu ".mysql_result($antal_online,0)." online";
/* Til sidst lukker vi forbindelsen til MySQL-databasen */
mysql_close($connection);
?>
På forhånd Tak
Heysam
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials