Avatar billede elskermad.dk Nybegynder
25. december 2002 - 12:09 Der er 14 kommentarer og
1 løsning

Slette brugere der er gået

Jeg har en chat, men har det store problem som alle andre, at hvis man ikke trykker logud men bar bruger X i højre hjørne, så kommer der problemmer...
Mit problem er at jeg gerne vil have den til at fortælle når folk de forlader chatten... Jeg har en tabel med online users, som sletter folk der fra hvis en speciel tid er gået:

$onlinephptid = $phptid-15;
mysql_query("delete from chat_online where time < '$onlinephptid'");
mysql_query("delete from chat_online where nick = '$loginnick'");
mysql_query("insert into chat_online (ip,nick,time) values ('$ip','$loginnick','$phptid')") or die(mysql_error());

Men så kunne jeg også godt tænke mig at den skrev at personen har forladt chatten...

i min logaf.php har jeg lavet sådan:

mysql_query("insert into chat_msg (besked,fra,til,ip,time,type,frakon) values ('$loginnick forlader chatten','Chatten','Alle','$ip','$phptid','all','Chatten')") or die(mysql_error());

Men kan det lade sig gøre også at køre den mySQL-query hvis logaf.php ikke bliver brugt!!?
Jeg har prøvet en del, men jeg kan ikke finde ud af hvad jeg skal gøre for det!!
Avatar billede jacob_m Nybegynder
25. december 2002 - 12:25 #1
Du vil have noget ala, at den kicker personen hvis han er inaktiv i 15 min, eller sådan noget ik?
Avatar billede jacob_m Nybegynder
25. december 2002 - 12:27 #2
så gør du vel.. if(tiden er overskrevet( kick personen og skriv besked))
Avatar billede elskermad.dk Nybegynder
25. december 2002 - 12:30 #3
nej, det skal ikke være kick.. det er vis personen har forladt chatten uden at give besked om det, så skal der skrives en besked i chatten
Avatar billede jacob_m Nybegynder
25. december 2002 - 12:35 #4
Ja.. Men man kan ikke i PHP, gøre så nå nogen trykker på LUK, så sender den en kommando (Hvad jeg ved af)..

Så du skal have et eller anden script, til hele tiden at sprøge om han/hun er online/aktiv og hvis han/hun ikke er det i f.eks. 15 min. så bliver han smidt ud..
Avatar billede elskermad.dk Nybegynder
25. december 2002 - 12:40 #5
nej, det er ikke noget med den skal smides ud..
Hvis personen FRIVIILIG er gået, uden at trykke logud, så ved chatten jo ikke at den er gået... Online listen bliver opdateret ved at den ikke bliver opdateret fra brugeren, men den kan jo ikke skrive at personen er smuttet.. det er det jeg vil
Avatar billede jacob_m Nybegynder
25. december 2002 - 12:41 #6
nåre.. Så Online listen kan godt finde ud af om de er der eller ej.. Okay..

Ja, den er svær...
Avatar billede elskermad.dk Nybegynder
25. december 2002 - 12:49 #7
ja, nemlig det
Avatar billede mjl Nybegynder
25. december 2002 - 12:57 #8
Hvis alle brugere sætter et slags stamp i en database, og alle onlinebrugere tjekker DB'en hver gang de gør noget - så kan dem der er online, tjekke DB'en for brugere der har et stamp der er ældre end 15 min., og nulstille dem.....og opdatere deres eget på samme tid.

Ved ikke om du forstår????
Avatar billede mjl Nybegynder
25. december 2002 - 12:58 #9
Brug time() som tid nu!

...og så skal time() i DB'en være 54000 sek. mindre....så er der gået 15 min. og de skal så stilles på 0
Avatar billede elskermad.dk Nybegynder
25. december 2002 - 13:04 #10
det er os det jeg gør!! men hvis der er en der bliver slettet i databasen, så skal der skrives noget i chatten...

www.myserver.lir.dk/chatting.dk/login.php der kan i se den...! (pass er lige gyldigt!)
Avatar billede elskermad.dk Nybegynder
25. december 2002 - 13:07 #11
$foresp = mysql_query("SELECT * FROM chat_online") or die(mysql_error());
while($row = mysql_fetch_array($foresp)) {
$onlineid  = $row["id"];
$onlinetime = $row["time"];
$onlinenick = $row["nick"];
$onlinetime = $onlinetime+11;

    if ($phptid > $onlinetime) {
        $foresp = mysql_query("SELECT * FROM chat_online WHERE nick = '$onlinenick'") or die(mysql_error());
        while($row = mysql_fetch_array($foresp)) {
        $nynick = $row["nick"];
        if ($nynick == '') {
            mysql_query("delete from chat_online where id = '$onlineid'");
            mysql_query("insert into chat_msg (besked,fra,til,ip,time,type,frakon,tid) values ('$onlinenick forlader chatten (Ingen Respons)','Chatten','Alle','$ip','$phptid','all','Chatten','$tid')") or die(mysql_error());
            }
        }   
    }
}

prøvet dette, men virker vist ikk
Avatar billede elskermad.dk Nybegynder
25. december 2002 - 13:17 #12
mysql_query("delete from chat_online where nick = '$loginnick'");
mysql_query("insert into chat_online (ip,nick,time) values ('$ip','$loginnick','$phptid')") or die(mysql_error());

$foresp = mysql_query("SELECT * FROM chat_online WHERE time < '$phptid") or die(mysql_error());
while($row = mysql_fetch_array($foresp)) {
$onlineid  = $row["id"];
$onlinetime = $row["time"];
$onlinenick = $row["nick"];

mysql_query("delete from chat_online where id = '$onlineid'");
mysql_query("insert into chat_msg (besked,fra,til,ip,time,type,frakon,tid) values ('$onlinenick forlader chatten (Ingen Respons)','Chatten','Alle','$ip','$phptid','all','Chatten','$tid')") or die(mysql_error());
}

heller ikke dette
Avatar billede elskermad.dk Nybegynder
25. december 2002 - 13:22 #13
*dooh* har fået den sidste til at virke! WEEEEEEEEE
Avatar billede mjl Nybegynder
25. december 2002 - 13:27 #14
ok - jamen fint så!!! Tak for hjælpen!!!
Avatar billede elskermad.dk Nybegynder
25. december 2002 - 22:46 #15
hvad?? :/
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester