Avatar billede n-emy Nybegynder
05. juni 2003 - 18:43 Der er 17 kommentarer og
1 løsning

Fejl i onlinescript.

Jeg har flg script der skulle vise hvilke brugernavne der er online og dem der ikke er logget ind skal der bare stå gæst men den skriver også bare gæst selvom man er logget ind hva er fejlen`??

showonline.php>>
<?


function InsertUser() {

    global $REMOTE_ADDR, $HTTP_USER_AGENT, $PHP_SELF;



    $ip            = $REMOTE_ADDR;

    $host          = gethostbyaddr($ip);

    $browser        = $HTTP_USER_AGENT;

    $page          = $PHP_SELF;

    $time            = explode(" ", microtime());

    $usersec        = (double)$time[1];

    mysql_query("DELETE FROM online_users WHERE ip like '$ip'");

    mysql_query("INSERT INTO online_users (ip,host,date,browser,page,userid) VALUES ('$ip','$host','$usersec','$browser','$page','$my_id')");

}



function ShowUsers() {



    $time            = explode(" ", microtime());

    $usersec        = (double)$time[1];

    mysql_query("DELETE FROM online_users WHERE date < $usersec -100");

    $countusers    = mysql_fetch_array(mysql_query("SELECT count(*) as total FROM online_users"));

$s_tjekuser = mysql_query("SELECT brugernavn,status FROM brugersystem WHERE brugernavn = '$brugernavn'");
$tjekuser = mysql_fetch_array($s_tjekuser);

    print ('<table class="tekstafsnit" border="0" CELLPADDING="0" CELLSPACING="0">');

    print ('<tr>');
if($tjekuser[status] == 1) {
    print ('<td STYLE="border-bottom:1px solid #000000;"><B><font face=verdana size=1>IP adresse:</B></td>');

    print ('<td STYLE="border-bottom:1px solid #000000;"><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
} else { }
    print ('<td STYLE="border-bottom:1px solid #000000;"><B><font face=verdana size=1>Brugernavn:</B></td>');

    print ('<td STYLE="border-bottom:1px solid #000000;"><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');

    print ('<td STYLE="border-bottom:1px solid #000000;"><B><font face=verdana size=1>Host adresse:</B></td>');

    print ('<td STYLE="border-bottom:1px solid #000000;"><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');

    print ('<td STYLE="border-bottom:1px solid #000000;"><B><font face=verdana size=1>Site:</B></td>');

    print ('</tr>');

    $result = mysql_query("SELECT * FROM online_users");

    while ($row = mysql_fetch_array($result)) {

$s_bru = mysql_query("SELECT brugernavn FROM brugersystem WHERE id = '$row[userid]'");
$bru = mysql_fetch_array($s_bru);

        print ('<tr>');

if($tjekuser[status] == 1) {
        print ('<td><font face=verdana size=1>'.$row[ip].'</td>');

                  print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
} else { }
if($bru == NULL) {
        print ('<td><font face=verdana size=1>'.Gæst.'</td>');

                  print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
} else {
        print ('<td><font face=verdana size=1>'.$bru[brugernavn].'</td>');

                  print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
}
        print ('<td><font face=verdana size=1>'.$row[host].'</td>');

                  print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');

        print ('<td><font face=verdana size=1><a href="'.$row[page].'"> '.$row[page].' </a></td>');

        print ('</tr>');



    }

    print ('</table>');

}

InsertUser();

showUsers();



?>
Avatar billede ohmish Nybegynder
05. juni 2003 - 19:17 #1
mysql_query("DELETE FROM online_users WHERE ip like '$ip'");

du starter simpelthen med at slette den bruger der kigger?
Avatar billede ohmish Nybegynder
05. juni 2003 - 19:22 #2
og så skulle du nok hellere bruge:

$s_bru = mysql_query("SELECT brugernavn FROM brugersystem WHERE id = '$row[userid]'");
$bru = mysql_fetch_array($s_bru);
$brugernavn = $bru['brugernavn'];

if(!$brugernavn) {
        print ('<td><font face=verdana size=1>'.Gæst.'</td>');
        print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
} else {
        print ('<td><font face=verdana size=1>'.$brugernavn.'</td>');
        print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
}
Avatar billede n-emy Nybegynder
05. juni 2003 - 20:50 #3
Kan du prøve at give mig hele koden hvor du har puttet det ind??
Avatar billede linuxn00b Nybegynder
05. juni 2003 - 21:20 #4
Problemet er at den ikke sætter $my_id ind i feltet userid i mysql, det er som om den simpelthen ikke kan læse sessions :S men menuen er sat ind med en include og den bruger sessions til at finde ud af om det er en admin der er logget ind, og der virker det, men lige så snart den skal bare vise $my_id på siden virker det ikke den indeholder simpelthen ikke noget...
Avatar billede ohmish Nybegynder
05. juni 2003 - 21:50 #5
jeg fatter stadig ikke at du sletter hvor ip=$ip i starten...?

men her:

showonline.php>>
<?


function InsertUser() {

    global $REMOTE_ADDR, $HTTP_USER_AGENT, $PHP_SELF;



    $ip            = $REMOTE_ADDR;

    $host          = gethostbyaddr($ip);

    $browser        = $HTTP_USER_AGENT;

    $page          = $PHP_SELF;

    $time            = explode(" ", microtime());

    $usersec        = (double)$time[1];

    mysql_query("DELETE FROM online_users WHERE ip like '$ip'");

    mysql_query("INSERT INTO online_users (ip,host,date,browser,page,userid) VALUES ('$ip','$host','$usersec','$browser','$page','$my_id')");

}



function ShowUsers() {



    $time            = explode(" ", microtime());

    $usersec        = (double)$time[1];

    mysql_query("DELETE FROM online_users WHERE date < $usersec -100");

    $countusers    = mysql_fetch_array(mysql_query("SELECT count(*) as total FROM online_users"));

$s_tjekuser = mysql_query("SELECT brugernavn,status FROM brugersystem WHERE brugernavn = '$brugernavn'");
$tjekuser = mysql_fetch_array($s_tjekuser);

    print ('<table class="tekstafsnit" border="0" CELLPADDING="0" CELLSPACING="0">');

    print ('<tr>');
if($tjekuser[status] == 1) {
    print ('<td STYLE="border-bottom:1px solid #000000;"><B><font face=verdana size=1>IP adresse:</B></td>');

    print ('<td STYLE="border-bottom:1px solid #000000;"><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
} else { }
    print ('<td STYLE="border-bottom:1px solid #000000;"><B><font face=verdana size=1>Brugernavn:</B></td>');

    print ('<td STYLE="border-bottom:1px solid #000000;"><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');

    print ('<td STYLE="border-bottom:1px solid #000000;"><B><font face=verdana size=1>Host adresse:</B></td>');

    print ('<td STYLE="border-bottom:1px solid #000000;"><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');

    print ('<td STYLE="border-bottom:1px solid #000000;"><B><font face=verdana size=1>Site:</B></td>');

    print ('</tr>');

    $result = mysql_query("SELECT * FROM online_users");

    while ($row = mysql_fetch_array($result)) {

$s_bru = mysql_query("SELECT brugernavn FROM brugersystem WHERE id = '$row[userid]'");
$bru = mysql_fetch_array($s_bru);
$brugernavn = $bru['brugernavn'];

        print ('<tr>');

if($tjekuser[status] == 1) {
        print ('<td><font face=verdana size=1>'.$row[ip].'</td>');

                  print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
} else { }
if(!$brugernavn) {
        print ('<td><font face=verdana size=1>'.Gæst.'</td>');
        print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
} else {
        print ('<td><font face=verdana size=1>'.$brugernavn.'</td>');
        print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
}
        print ('<td><font face=verdana size=1>'.$row[host].'</td>');

                  print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');

        print ('<td><font face=verdana size=1><a href="'.$row[page].'"> '.$row[page].' </a></td>');

        print ('</tr>');



    }

    print ('</table>');

}

InsertUser();

showUsers();



?>
Avatar billede linuxn00b Nybegynder
05. juni 2003 - 21:54 #6
har du ændret andet end ip = $ip til ip LIKE $ip ?
Avatar billede linuxn00b Nybegynder
05. juni 2003 - 21:55 #7
Og hvis du skulle finde på at spørge så står der også session_start(); før alt det der :)
Avatar billede ohmish Nybegynder
05. juni 2003 - 22:11 #8
jeg har ikke skrevet LIKE.. det har du
Avatar billede linuxn00b Nybegynder
05. juni 2003 - 22:14 #9
nå ja, men ok, hvad har du så ændret?
Avatar billede ohmish Nybegynder
05. juni 2003 - 22:15 #10
har kun ændret:

$s_bru = mysql_query("SELECT brugernavn FROM brugersystem WHERE id = '$row[userid]'");
$bru = mysql_fetch_array($s_bru);
$brugernavn = $bru['brugernavn'];

if(!$brugernavn) {
        print ('<td><font face=verdana size=1>'.Gæst.'</td>');
        print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
} else {
        print ('<td><font face=verdana size=1>'.$brugernavn.'</td>');
        print ('<td><font face=verdana size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
}
Avatar billede linuxn00b Nybegynder
05. juni 2003 - 22:20 #11
nå ok, men der er altså kun fejl i at den ikke sætter my_id ind i mysql, alt det andet virker, jeg har testet det.
Avatar billede ohmish Nybegynder
05. juni 2003 - 22:21 #12
brugte selvsamme script engang for lææææænge siden...

nu har jeg bare et felt der hedder STATUS i databasen... dette ka så være ONLINE eller OFFLINE. når en bruger kigger på siden sættes hans egen STATUS til online, og sætter samtidig andre der ikke har været på siden i de sidste 3 minutter til OFFLINE.

når jeg skal vise hvem der er online bruger jeg:

SELECT FROM brugere WHERE status='online'
osv osv.
Avatar billede ohmish Nybegynder
05. juni 2003 - 22:22 #13
ok. godt så :)
Avatar billede linuxn00b Nybegynder
05. juni 2003 - 22:24 #14
ja, det ligger der også på siden, men han vil bare ha' at man skal kunne se hvor på siden folk er, men kan da ik rigtig se hvad han vil bruge det til ;)
Avatar billede n-emy Nybegynder
05. juni 2003 - 23:02 #15
Hvis det er lettere så må den gerne lade være med at vise hvor på siden folk er...
Avatar billede linuxn00b Nybegynder
05. juni 2003 - 23:12 #16
det er 10 milliarder gange nemmere, for så skal der bare ændres en lille smule på det online script jeg lavede til dig for lang tid siden. Jeg ser lige på det i morgen :)
Avatar billede n-emy Nybegynder
05. juni 2003 - 23:17 #17
Ok tak...
Avatar billede linuxn00b Nybegynder
06. juni 2003 - 20:52 #18
Ahh fandt ud af det :D

$brugernavn = $_SESSION[brugernavn];
$kodeord = $_SESSION[kodeord];
$my_id = $_SESSION[my_id];

det skulle sættes ind lige efter:

function InsertUser() {

og:

function ShowUsers() {
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