On Sun, 4 Apr 2004 02:28:46 +0200, "Janus Høi" <HOI@sletdetteJAGI.COM>
wrote:
> $hits = $hits + 1;
> mysql_query("update $tabel set hits = '$hits' where id = '$id'");
Det er nok ikke vigtigt på en vilkårlig side uden for mange hits, men
for en god ordens skyld: Du bør lade databasen om at opdatere, for at
sikre, at det bliver gjort atomisk. Fx:
mysql_query("update $tabel set hits = hits + 1 where id = '$id'");
>Kan man ikke lige gøre sådan, at den kun tæller 1 gang for hver browser?
>Altså sådan at hvis man reloader siden sker der ikke noget, men man kan godt
>lukke browseren ned og så åbne en anden og så tæller den en mere.
Da det ikke lyder som om, der er behov for et grundigt tjek eller
lignende, vil en hurtig løsning blot være at sætte en cookie, og så
tjekke at cookie'n ikke er sat, lige før man tæller én op.
http://php.net/setcookie
Hvis den kun skal gælde, indtil brugeren lukker sine browservinduer
ned, så fx:
setcookie("seen","1");
.... og så ved tjekket:
if ($_COOKIE['seen'] != "1") {
mysql_query("update $tabel set hits = '$hits' where id = '$id'");
}
Så burde der være noget at tage udgangspunkt i. Den tager dog ikke
højde for brugere, der ikke vil modtage cookies, m.m. Om det så er et
problem afhænger af sidens art.
--
- Peter Brodersen
Ugens sprogtip: smide (og ikke smidde)