Avatar billede sim00n Praktikant
05. august 2004 - 13:46 Der er 5 kommentarer og
1 løsning

Tilføjning til script..

Hej.. Jeg har ændret en del fra et community script som virker men nu vil jeg gerne have tilføjet user online.. den skal kunne lave en liste som viser hvilke brugere der er online..

Og når folk tilmelder sig skal deres ip blive glemt (de skal ikke selv skrive ip'en) men vil gerne have den gemmes i mySQL databasen eller en fil hvis nu nogle skal bannes ^_^.

Her er opret.php

<html>
<head>
<title>BBE's Community</title>
</head>
<?
include("bgogskrift.php");
?>
<form action="opret_ok.php" method="post">
Brugernavn: <input type="text" name="brugernavn"><br>
Password: <input type="password" name="password"><br>
E-mail: <input type="text" name="email"><br>
Lidt om dig:<br>
<textarea name="om" rows="4" cols="40"></textarea><br>
<input type="submit" name="opret" value="Opret"></form>
<? include("copyright.php"); ?>
</body>
</html>
Avatar billede sim00n Praktikant
05. august 2004 - 13:49 #1
www.bbelement.com/image3.gif <-- min database (users)
Avatar billede sim00n Praktikant
05. august 2004 - 13:50 #2
www.bbelement.com/Image3.gif <-- det link virker
Avatar billede sim00n Praktikant
05. august 2004 - 14:05 #3
Ingen ? Ingen der kan hjælpe ?
Avatar billede crax Nybegynder
05. august 2004 - 14:22 #4
Mht. ban på IP adresse er det lidt risikabelt, idet at du risikerer at udelukke en stor gruppe brugere. F.eks. hvis den der skal bannes sidder bag en proxy, som andre af dine brugere benytter, så vil de alle blive bannet...

Din online-liste kan laves simpelt ved at du opretter en sideordnet tabel og kalder den aktivitet. I toppen af din(e) side(r) indsætter du et lille script eller inkluderer en php-side, hvor du indsætter en række i "aktivitet"-tabellen.

Tabel:
userid INT NOT NULL
active DATETIME

Hvis du har mulighed for cron, kan du køre et sql kald fx. hvert 5. minut, der sletter alle records i "aktivitet" der er mere end 5 min. gamle.
Du kan også gøre det umiddelbart før eller efter det kald der skriver en record i tabellen. Hovedsagen er at det bliver gjort, da der ellers vil være mange rækker i tabellen.

Hvis du vil vide hvem der er online, kalder du noget i stil med
"SELECT DISTINCT userid FROM aktivitet"

Listen du får ud er alle de id'er der er online (eller har udvist aktivitet indenfor de seneste 5 min)...

Håber du kan bruge det... har ikke mulighed for at lave noget kode til det lige nu, men hvis det er helt uforståeligt må jeg se hvad jeg kan gøre senere :)

/Crax
Avatar billede sim00n Praktikant
05. august 2004 - 14:26 #5
Jamen jeg vil have at brugernavnene skal stå på listen... ikke id... id er bare tal..
Avatar billede crax Nybegynder
06. august 2004 - 12:12 #6
Heh . så skriver du da bare brugernavn i stedet for id...

Tabel:
brugernavn TEXT (bør matche typen i bruger-tabellen)
active DATETIME

Måske man burde overveje at skifte TEXT ud med VARCHAR i brugernavn, password og email. TEXT er måske lige overkill nok :)

Nu bliver listen du får ud brugernavnene. Altså hvis du også omskriver SQL kaldet tilsvarende:
"SELECT DISTINCT brugernavn FROM aktivitet"

/Crax
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