Avatar billede flol Nybegynder
24. august 2007 - 09:53 Der er 6 kommentarer og
1 løsning

Online tjekker

Hey.
Har lavet noget kode, der tjekker om brugere er online på min sider, eller om de ikke er.
Men den tjekker ikke helt så godt, den vil gerne, hvis man er online, men lige så snart den skal sætte folk til offline, sker der intet.
hvorfor ikke?

---------kode----------------
<?
session_start();
$tid = time();
$time = 440;
$tid2 = $tid - $time;
mysql_query("DELETE FROM onlinebrugere WHERE tid < '$tid2'");
if($_SESSION['level'] >= 1) {
    $query = mysql_query("SELECT * FROM onlinebrugere WHERE brugernavn = '$_SESSION[bruger]'");
    $antal = mysql_num_rows($query);
    if($antal == 1) {
        mysql_query("UPDATE onlinebrugere SET tid = NOW() WHERE brugernavn = '$_SESSION[bruger]'");
    }else{
        mysql_query("INSERT INTO onlinebrugere VALUES('', '$_SESSION[bruger]', NOW())");
    }
}
?>
----------/kode----------------
Avatar billede Slettet bruger
24. august 2007 - 10:03 #1
Jeg tror du skal formatere $tid2 med date()
Erstat
mysql_query("DELETE FROM onlinebrugere WHERE tid < '$tid2'");
med

Du kan evt. prøve med for at se, om kaldet bliver udført korrekt (ellers bliver en fejl udskrevet).
mysql_query("DELETE FROM onlinebrugere WHERE tid < '" . date("Y-m-d",$tid2) . "'") or die(mysql_error());
Avatar billede Slettet bruger
24. august 2007 - 10:03 #2
hov.. fik slettet hvad den skulle erstattes med - prøver igen:

Erstat
mysql_query("DELETE FROM onlinebrugere WHERE tid < '$tid2'");
med
mysql_query("DELETE FROM onlinebrugere WHERE tid < '" . date("Y-m-d",$tid2) . "'");
Du kan evt. prøve med for at se, om kaldet bliver udført korrekt (ellers bliver en fejl udskrevet).
mysql_query("DELETE FROM onlinebrugere WHERE tid < '" . date("Y-m-d",$tid2) . "'") or die(mysql_error());
Avatar billede flol Nybegynder
24. august 2007 - 10:39 #3
hm hvis jeg minuser med 440, hvor langtid er det så?
Avatar billede zynzz Praktikant
24. august 2007 - 10:50 #4
440 sek... :)
Avatar billede flol Nybegynder
24. august 2007 - 11:06 #5
Okay ;D
men den sletter stadig ikke. :/
Avatar billede flol Nybegynder
24. august 2007 - 11:43 #6
har fundet en løsning, har gjort dette:

<?
$tid2 = time() - 900;
mysql_query("DELETE FROM onlinebrugere WHERE tid < '$tid2'") or die(mysql_error());

if($_SESSION['level'] >= 1) {
    $query = mysql_query("SELECT * FROM onlinebrugere WHERE brugernavn = '$_SESSION[bruger]'") or die(mysql_error());
    $antal = mysql_num_rows($query);
    if($antal == 1) {
        mysql_query("UPDATE onlinebrugere SET tid = '".time()."' WHERE brugernavn = '$_SESSION[bruger]'") or die(mysql_error());
    }else{
        mysql_query("INSERT INTO onlinebrugere VALUES('', '$_SESSION[bruger]', '".time()."')") or die(mysql_error());
    }
}
?>

jeg har ændret min NOW() til time(), og så virker det fint ;)
Avatar billede flol Nybegynder
24. august 2007 - 11:44 #7
ellers tak for hjælpen

Lukker
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