Avatar billede mulles.tk Nybegynder
20. maj 2003 - 20:41 Der er 38 kommentarer og
2 løsninger

"hvem er online?"

Jeg har flg. side:
http://www.zapp.wildness.dk/

Indtil videre er det kun mig der styrer siden, men der kommer 2-3 mere. Jeg vil så gerne have det sådan, at der på forsiden et sted står hvem der er online af os. Først tænkte jeg at det kunne gøres med computeres IP-adresse, men hvis man nu var et andet sted og stadig godt ville vise at man var online, så ville det nok være smartere med et login system. Jeg har allerede et admin system, men der er kun et brugernavn og et password, så enten skal det udvides eller også skal jeg have et nyt lille et.

Jeg har ikke speciel meget forstand på php, så I må lige guide mig igennem! :D
Avatar billede lirekassemanden Nybegynder
20. maj 2003 - 21:38 #1
Kan du ikke bare ligge noget ind med jeres ICQ nummere hvis i har sådanne? Man kan med lidt simpelt HTML checke om en ICQ bruger er online!
Avatar billede mulles.tk Nybegynder
20. maj 2003 - 21:48 #2
Jo den ide havde jeg også selv, men for det første ved jeg ikke om de alle har ICQ, og med mig selv som eksempel, så er det ikke hver gang jeg er på siden, at jeg også er på ICQ! Så hvis der det kunne gøres med et login system vil det hjælpe meget!
Avatar billede lirekassemanden Nybegynder
20. maj 2003 - 21:49 #3
jamen hvordan er jeres login system lige nu?

hvis i skal logge ind kan du hurtigt lave det sådan at man kan se brugernavnet på den/de brugere der er logget ind.
Avatar billede mulles.tk Nybegynder
20. maj 2003 - 21:56 #4
Man skal logge ind, men der er kun en bruger, og rent faktisk så ved jeg ikke helt hvordan man tilføjer flere!
Avatar billede lirekassemanden Nybegynder
20. maj 2003 - 22:03 #5
Ved du hvordan det er lavet? Mysql? .htaccess?
Avatar billede mulles.tk Nybegynder
20. maj 2003 - 22:31 #6
Det er i hvert fald ikke lavet med Mysql, og tror heller ikke med .htaccess. Der er en config.php fil som indeholder brugernavn og adgangskode. Ikke andet!
Avatar billede exp Juniormester
21. maj 2003 - 09:16 #7
Tror du skal igang med mysql hvis der skal være mulighed for at se hvem der er online...
Avatar billede lirekassemanden Nybegynder
21. maj 2003 - 11:00 #8
du skal bruge mysql hvor brugerne ligger samt deres passwords!
Avatar billede mulles.tk Nybegynder
21. maj 2003 - 13:12 #9
Det er også helt fint, men kan nogen hjælpe med opsætningen? -og skal det være en udvidelse af det nuværende eller bare et nyt lille et?
Avatar billede exp Juniormester
21. maj 2003 - 13:29 #10
brug dette:
http://firewerx.dk/www/usersonline.zip

vejledning står i readme.txt
Avatar billede mulles.tk Nybegynder
21. maj 2003 - 14:08 #11
Jeg har lige nogen spørgsmål:
1. hvor ved den hvilke brugere det drejer sig om? Skal jeg indtaste det nogen steder?
2. selve filen usersonline.php skal den indsættes nogen steder, eller skal jeg bare tage de forskellige dele ud der fra?
Avatar billede exp Juniormester
21. maj 2003 - 14:17 #12
ad 1)
Kombinér det med loginscriptet, således at:
  if ($udtræk_fra_onlinedatabase_IP == $udtræk_fra_logindatabase_IP) {
      // kode til at vise brugernavn istedet for ip
  } else {
      // kode til at vise ip
  }

ad 2)
Den skal skilles ad...
Avatar billede mulles.tk Nybegynder
21. maj 2003 - 14:18 #13
Okay... men jeg har ingen login database?
Avatar billede exp Juniormester
21. maj 2003 - 14:19 #14
så skal du have en :-)
Avatar billede exp Juniormester
21. maj 2003 - 14:20 #15
Avatar billede mulles.tk Nybegynder
21. maj 2003 - 14:33 #16
Det er altså for indviklet...

Det må kunne gøres mere enkelt!!
Avatar billede mulles.tk Nybegynder
21. maj 2003 - 14:46 #17
Jeg har prøvet at demonstrere det jeg mener her:
www.zapp.wildness.dk/eksempel.htm
Jeg har så tænkt mig at placere det i en iframe på forsiden!
Avatar billede exp Juniormester
21. maj 2003 - 15:04 #18
Hvis det skal virke som du vil have det skal, så er det den eneste (og temmelig enkle, imho) måde... (jeg kan komme på anyway)
Avatar billede mulles.tk Nybegynder
22. maj 2003 - 11:30 #19
Enkle..? Hmm... det synes jeg nu ikke, men jeg prøver mig frem hvis der ikke kommer andre forslag! Du får pointene hvis jeg kan få det til at virke :)
Avatar billede exp Juniormester
22. maj 2003 - 11:43 #20
Hvis du som udgangspunkt opsætter login-scriptet, kan du vha et udtræk se hvem der er logget ind.

Hvis ingen er logget ind, skal der ikke stå noget.
Hvis nogen er logget ind, skal der stå:

Logget ind:
Admin
bruger
coadmin
etc
Avatar billede mulles.tk Nybegynder
22. maj 2003 - 12:08 #21
Synes bare at login scriptet her:
http://www.free2code.net/tutorials/programming/php/4/phplogin.php
virker utrolig forvirende?
Avatar billede exp Juniormester
22. maj 2003 - 12:42 #22
jeg kan kun sige at loginscriptet fra sukos er det bedste - gad vide hvad der er galt med hans side...
Avatar billede mulles.tk Nybegynder
22. maj 2003 - 13:02 #23
Så venter jeg til siden engang kommer op igen!
Avatar billede mulles.tk Nybegynder
28. maj 2003 - 21:09 #24
Så nu virker siden!
Men hvad skal jeg vælge her, du må lige guide mig igennem! Har også hævet pointene med 50!

www.sukos.dk/php/login
Avatar billede mulles.tk Nybegynder
28. maj 2003 - 23:34 #25
okay jeg gik lidt videre!

Jeg har valgt mysql/ og har uploadet password.sql til min MySQL database!

Men hvad gør jeg så her fra?
Avatar billede mulles.tk Nybegynder
28. maj 2003 - 23:44 #26
har lige nogen spørgsmål til dette:
----------------------
$db = mysql_connect("localhost", "root", "") or die ("Desværre ingen forbindelse til databasen");

mysql_select_db("password", $db) or die ("Kunne ikke vælge databasetabel");
----------------------
der hvor der står mysql_connect..., skal jeg der skrive mit password til databasen ved de to ""? Jeg har udfyldt localhost og root!

Skal jeg også udfylde noget ved mysql_select_db...?
Avatar billede jakoba Nybegynder
29. maj 2003 - 21:23 #27
parameterne til mysql_connect er  ( server , username , password )
er du sikker på dit username er "root"? det lyder mere som et standard mappenavn på serveren.
Allenfals kan vi ikke gætte os til hvad dit brugernavn og password er. Hvis vi kunne var de jo ikke meget værd. Spørg evt din udbyder hvad default er der.
Avatar billede mulles.tk Nybegynder
29. maj 2003 - 21:29 #28
Heh he... det jeg mente med at jeg havde udfyldt "localhost" og "root", var at jeg i filen på min computer havde udfyldt det med de rigtigt oplysinger, men var bare i tvivl om passwordet skulle stå ved "", da der nemlig ikke var skrevet noget ligesom "localhost" og "root"! :D

men hvad med denne kode:
mysql_select_db("password", $db) or die ("Kunne ikke vælge databasetabel");
skal der udfyldes noget der? password måske?
Avatar billede exp Juniormester
30. maj 2003 - 11:21 #29
mysql_select_db("password", $db)

skal være

mysql_select_db("database", $db)
Avatar billede mulles.tk Nybegynder
30. maj 2003 - 12:26 #30
Kanont! Så har jeg fået login-systemet til at virke, men hvad så?
Avatar billede mulles.tk Nybegynder
30. maj 2003 - 13:31 #31
Jeg har prøvet at kigge på user online koden, men den virker rimelig umulig :/ ! Jeg har indsat koden der skal indsættes i mysql! Så er der bare lige alt det andet :D
Avatar billede exp Juniormester
31. maj 2003 - 14:31 #32
Der er tre dele...

------------------------------
/* dette skal indsættes på alle undersider */
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) VALUES ('$ip','$host','$usersec','$browser','$page')");
}
InsertUser();
/* her til */


Udskriver tabellen med hvem der er online:
showUsers();

Opretter tabellen:

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"));
   
    print ('<table border="0" BGCOLOR="#000000" CELLSPACING="2">');
    print ('<tr><td BGCOLOR="#008000" COLSPAN="4"><B><font color="#ffffff">Users online: '.$countusers[total].'</font></B></td></tr>');
    print ('<tr>');
    print ('<td BGCOLOR="#FFFFFF"><B>Ip</B></td>');
    print ('<td BGCOLOR="#FFFFFF"><B>Host</B></td>');
    print ('<td BGCOLOR="#FFFFFF"><B>Browser</B></td>');
    print ('<td BGCOLOR="#FFFFFF"><B>Side</B></td>');
    print ('</tr>');
   
    $result = mysql_query("SELECT * FROM online_users");
    while ($row = mysql_fetch_array($result)) {
        print ('<tr>');
        print ('<td bgcolor="#FFFFFF"><small>'.$row[ip].'</small></td>');
        print ('<td bgcolor="#FFFFFF"><small>'.$row[host].'</small></td>');
        print ('<td bgcolor="#FFFFFF"><small>'.$row[browser].'</small></td>');
        print ('<td bgcolor="#FFFFFF"><small>'.$row[page].'</small></td>');
        print ('</tr>');
    }
    print ('</table>');

}
Avatar billede mulles.tk Nybegynder
31. maj 2003 - 17:21 #33
Jeg har tænkt mig at tabellen skal blive vist på forsiden i en lille iframe ude i siden, så egentlig behøver jeg vel kun at sætte, den kode som skal ind på alle undersiderne, ind på den side som skal udskrive tabellen?

Så skulle jeg kombinere de to med dette, men hvordan?

  if ($udtræk_fra_onlinedatabase_IP == $udtræk_fra_logindatabase_IP) {
      // kode til at vise brugernavn istedet for ip
  } else {
      // kode til at vise ip
  }

Skal jeg ændre noget i det?
Avatar billede mulles.tk Nybegynder
31. maj 2003 - 17:23 #34
Hvad med denne lille kode?
print ("<hr>");
show_source(basename($PHP_SELF));
Avatar billede mulles.tk Nybegynder
31. maj 2003 - 17:30 #35
du kan følge med I hvad jeg laver her:
http://zapp.wildness.dk/online_/admin_online.php
Avatar billede exp Juniormester
02. juni 2003 - 09:14 #36
print ("<hr>");
show_source(basename($PHP_SELF));

Dette udskriver bare selve kildekoden - den er ikke interessant for andre end dig :-)

Den side der skal sættes ind på alle undersider, SKAL sættes ind på alle undersider. Ellers virker scriptet ikke - så bliver de online brugere jo ikke registreret.

if ($udtræk_fra_onlinedatabase_IP == $udtræk_fra_logindatabase_IP) {
  // kode til at vise brugernavn istedet for ip
} else {
  // kode til at vise ip
}

dette skal selvfølgelig tilpasses det database-udtræk du foretager.

Det jeg har lavet er en skabelon... :-)
Avatar billede mulles.tk Nybegynder
02. juni 2003 - 22:20 #37
som nævnt aller først, så har jeg ikke meget forstand på php, så hvis du lige vil hjælpe lidt endnu. Jeg sætter pointene op til 200!

Min onlinedatabase hedder: online_users
Og logindatabasen hedder: brugere
Avatar billede exp Juniormester
03. juni 2003 - 00:03 #38
$db = mysql_connect("server", "username", "password") or die(mysql_error("Cannot connect to database"));

mysql_select_db("online_users", $db);

$sql = mysql_query("select ip from tabel);
        while($data = mysql_fetch_array($sql)){
            $db2 = mysql_connect("server", "username", "password") or die(mysql_error("Cannot connect to database"));

mysql_select_db("brugere", $db2);
                        $sql2 = mysql_query("select ip, brugernavn from tabel2);
while($data2 = mysql_fetch_array($sql)){
if ($data['ip'] == $data2['ip'] ) {
  echo $data['brugernavn'];
} else {
  excho $data[ip']
}
}

mysql_close();
Avatar billede exp Juniormester
03. juni 2003 - 00:04 #39
while($data2 = mysql_fetch_array($sql)){

skal være

while($data2 = mysql_fetch_array($sql2)){
Avatar billede mulles.tk Nybegynder
10. juni 2003 - 21:07 #40
Well... jeg kunne ikke få det til at virke, så jeg spurgte en som vidste lidt om det, og han sagde at det var en fejl flydt og besværlig måde, men du får dine point for at have forsøgt :D *ved godt at man ikke må give point, hvis man ikke har fået svar på sit spørgsmål, så du får 150 for at have prøvet, og så tager jeg selv 50 :D*
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