Hej Geert!
"Geert Lund" <glund-news@post.tele.dk> skrev i en meddelelse
news:44269888$0$2084$edfadb0f@dtext02.news.tele.dk...
> Dennis Munding wrote:
>
>> Begge modeller udskriver "brugere", selv om der kun er én online....?
>
> 1) Har du checket at $antal_brugere indeholder det forventede?
Hvordan kan jeg se det? Med en var_dump()?? Hvis ja, så se mit svar til
Leonard...
>> Kan det have nogen betydning, at jeg har delt hele scriptet op i 3:
>
>> 1: Kald til fil, som forbinder til database og tæller op
>> 2: Udskriv resultatet (virker uden problemer)
>> 3: Kald til fil, som lukker forbindelsen
> Det er jo umuligt at svare dig på sålænge du ikke har inkluderet noget
> konkret kode ud over 4-5 linier der udlæser en tekst til skærmen.
1: <? require($_SERVER['DOCUMENT_ROOT']."/Inc/online_connect.php"); ?>
(online_connect.php):
<?php
/* Vi connecter til databasen. */
$connection = mysql_connect("mydb2.surf-town.net", "Munding_Admin",
"LeneDennis");
mysql_select_db("Munding_fotoadgang");
/* 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());
}
/* 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());
var_dump($antal_online);
if($antal_online != 1) {
$antal = "brugere";
} else {
$antal = "bruger";
}
?>
2: <? echo "<p class=\"online\">Der er lige nu
".mysql_result($antal_online,0)." ".$antal." online</p>"; ?>
3: <? require($_SERVER['DOCUMENT_ROOT']."/Inc/online_close.php"); ?>
(online_close.php):
<?php mysql_close($connection); ?>
> Derudover - hvis $antal_online indeholder korrekt data kan følgende
> bruges:
>
> echo $antal_online . ' ' . ( (int) $antal_online == 1 ? 'bruger' :
> 'brugere' ) . ' online ';
Det gør den så åbenbart ikke, for det virkede ikke.... (eller også klokkede
jeg bare i det...)
Med venlig hilsen
--
Dennis Munding
Web-master
http://www.skovaa-munding.dk/, http://www.mundings-memorial.dk/
http://www.cantica.dk/, http://www.eds-denmark.dk/