12. april 2007 - 17:25Der er
5 kommentarer og 1 løsning
Online brugere system slår fejl
hej. koden først:
-----------kode--------------
$maxtime = time() -6000; mysql_query("UPDATE brugere SET online = 'nej', activ = '' WHERE UNIX_TIMESTAMP(activ) < '$maxtime'") or die(mysql_error());
if($_SESSION['level'] == 'normal' OR $_SESSION['level'] == 'admin') { mysql_query("UPDATE brugere SET activ=NOW() online='ja'"); }
---------------/kode---------------
Ja jeg har jo prøvet mig lidt frem med et online system, som skulle visse hvilke brugere der er online på min side men den virker ikke så godt :/
koden ovenfor er så det, kode jeg har på hver side på mit site. kan i måske hjælpe mig med at forbedre den? indtil videre gider den slet ingen ting, hvordan kan det være?
Jeg ville nok vælge at bruge time() konsekvent i stedet for den blanding af time() og NOW() du har nu. Og så evt. bruge online='0' når brugeren ikke er online og '1' når de er online. I stedet for 'nej' og 'ja', men det er mere en smagssag.
Derudover har du et par fejl. Her: UNIX_TIMESTAMP(activ) < '$maxtime' (ugyldig kommando i where) Og her: activ=NOW() online='ja' (mangler et komma)
En rettelse kunne se sådan ud:
$time = time(); $maxtime = $time-6000; mysql_query("UPDATE brugere SET online = 'nej' WHERE activ < '$maxtime'") or die(mysql_error());
if($_SESSION['level'] == 'normal' OR $_SESSION['level'] == 'admin') { mysql_query("UPDATE brugere SET activ=NOW(), online='ja'"); // Der mangler en form for WHERE på ovenstående query, som den ser ud nu opdaterer den ALLE brugere i tabellen. Jeg kan ikke se ud fra din kode hvad den WHERE skal indeholde. }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.