17. juni 2004 - 13:40Der er
8 kommentarer og 1 løsning
online/offline hvordan?
Hejsa.
Jeg har et community, med login og opret bruger og et time system.
Når man logger ind laver den en mysql_query hvor den opdatere online='ja'. Og når man trykker på LOGUD opdatere den online='nej' begge med WHERE brugernavn='$_SESSION[brugernavn]'.
Og det er der ingen problemer i. Men nu vil jeg have sådan at hvis man ikke logger ud og bare trykke X eller alt+F4 så skal den også ændre en til online='nej' UDEN popup.
Og jeg har selv en idé. Jeg har en usynlig iframe på forsiden som opdatere sig selv hver 30 sekund. Og inde i den kan jeg vel så gøre sådan at den ændre alle som ikke er logget på til OFFLINE.
Og nej, det er jo ikke lige. Men når man er logget ind er der jo mit timesystem som også køre over mysql. Så der er et felt i mysql tabellen som bliver opdateret hver 20 sek. med time();
Og timeout i tabellen bliver jo ikke opdateret når man ikke er på siden mere... Og så kunne man evt. lave:
$duration = $rowdata[timeout]-30; WHERE timeout = timeout<'$duration'
Eller sådan noget... Hvor at den sletter alle hvor feltet TIMEOUT er 30 sekunder gammelt. Som ikke kan lade sig gøre når man ikke er logget på.
Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
Slettet bruger
17. juni 2004 - 13:47#1
Jeg forstår ikke helt, hvad dit problem er... Det ser ud til at du har overblik over mulighederne.
// ONLINE.PHP som bliver loaded hvert minut (Jeg skrev hver 30 sek. før):
<? session_start(); include "inc/db.php";
$time = time();
$sek = "30";
$duration = $time-$sek;
$query = mysql_query("SELECT online FROM brugere WHERE online='ja' AND timeout = timeout<'$duration'") or die(mysql_error()); $data = mysql_num_rows($query);
if($data > 0) {
mysql_query("UPDATE brugere SET online = 'nej' WHERE timeout = timeout<'$duration'");
Hejsa. Er du gal der er mange tomme linier i den kode. Et par ting jeg ikke forstår; måske ligger fejlen et af de steder... 1. Der er ikke noget HTML, hverken <head> eller <meta> i nofen af de to scripts... Jeg går ud fra du har klippet det fra fordi du ikke mener det er der problemet ligger? 2. Såvidt jeg kan se burde du kunne skifte dette:
$query = mysql_query("SELECT online FROM brugere WHERE online='ja' AND timeout = timeout<'$duration'") or die(mysql_error()); $data = mysql_num_rows($query);
if($data > 0) mysql_query("UPDATE brugere SET online = 'nej' WHERE timeout = timeout<'$duration'");
med dette:
mysql_query("UPDATE brugere SET online='nej' WHERE timeout<'$duration' AND online='ja'");
- ingen test, bare sætte dem som ikke har fået opdateret deres 'timeout' felt til 'offline' - lidt spild af kræfter, hvis der er mange brugere. - Jeg har ændret dit udtryk "timeout = timeout<'$duration'" til "timeout<'$duration'". I virkeligheden tror jeg fejlen ligger der.
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.