Hvordan skal databasen/funktionerne (chat) laves?

Tags:    programmering

<< < 12 > >>
Ved ikke lige hvor jeg skal oprette denne. Designet har jeg sådan set styr på, men jeg aner ikke hvad man skal kunne i en chat database - hvordan det skal bygges op, hvis man skal have mulighed for følgende:

En chatter trykker på en knap (alarm) som går til en co-admin, denne skal hurtigt komme til pågældende chatrum.

En co-admin skal have mulighed for at smide folk ud af chatten x antal minutter - men hvad så hvis vedkommende selv er gået ud af chatten og stadig skal have karantæne i x antal minutter? Hvordan skal det laves - formentlig en liste af en slags over brugere i chatten og brugere på sitet (som har været i chatten) eller??

Bør man gemme en daglig log af hvad der bliver skrevet i chatten, hvem der logger ind og ud?

Bør man gemme brugers IP numre?

Jeg har søgt på administration panels og lignende på nettet for at finde inspiration, men er ikke rigtigt kommet længere.

Jeg skal altså have funktionerne på plads, hvad der sker når man trykker hvor osv - designet klarer jeg selv, og jeg har også programmøren.

Når en co-admin får en alarm fra chatten - hvad skal der så ske? Hvordan får han alarmen, hvordan ved han hvem der har trykket osv.

Hjælp!




14 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Hvordan skal tingene se ud - altså hvad skal tabellen I vil lave indeholde præcis, og hvad når man har flere chat rum?

Du vil nok, hvis det er traditionelt bygget op, have en ramme til kontrolpanel og en stor ramme til beskederne. Noget jeg har set med succes til rumskifte er, at man indtaster en kommando (eller trykker på en knap, det er jo sådan set det samme) og så vises der en rumliste der hvor chatbeskederne kommer, hvor man så kan klikke sig over i et andet rum.

Bør der være 1 side med oversigt over chatrum og ud for hvert rum stå antal brugere i rummet. Og så kan man klikke i et chatrum og se navne osv. på brugere i rummet? Mulighed for at følge en bruger - hvad er vigtigt?

Det er vigtigt at kunne se hvem der er i rummet og dermed også antal i en rumoversigt. Derudover er det, hvis du vælger at dine rum skal have emner, utroligt vigtigt at emnet fremgår af oversigten.

Og hvad hvis brugeren hopper ud af chatten, men man vil stadig udelukke ham i f.eks. ½ time. Hvor skal jeg så finde brugeren? Der vil jo formentlig være mange online på sitet?

Du skal så som administrator finde ham i brugerdatabasen (den kan din programmør klare).
Personligt ville jeg foretrække en banlysnings-kommando, udfra id eller alias.
F.eks. /ban user id eller /ban brugernavn evt. efterfulgt af antal minutter.

En oversigt over brugere er heller ikke en umulighed, det ville dog være noget møj, hvis det ikke har en søgefunktion, igen kan selve chatvinduet bruges, da man ikke chatter mens man administrerer :-)

Bør man gemme en logfil, og hvordan finder man nemmest en log optaget f.eks. kl. 14:00 i går? Kan den gemmes med intervaller? Hvor mange logfiler bør man gemme? For 14 dage (alle chatrum) eller?

Din programmør kan gemme samtlige beskeder, linje for linje i en database og der er ingen grund til at begrænse antallet af dage. Der ville jeg så (igen med brug af chatvinduet, hvor beskederne normalt vises) vælge at sætte et kalender-system op, ligesom man ser med diverse blogs rundt omkring og evt. nogle fritekst-felter hvor du kan hamre enten keywords eller datoer (eller begge dele ind). Datoen bør nok laves vha. nogle SELECTs for at undgå forvirring.

-
Mvh.
Christian Schultz Knudsen



Først og fremmest, snak med din programmør om det.
Det er ham som skal lave det, og så er det nok bedst at det dels bliver på hans egen måde, og at han fuldt ud forstår ideen og løsningen.

Når det er sagt, så drejer det hele sig vel om identificering af chat-brugerne.
Hvordan har du løst det, for det har du vel løst?

Vælger en chat bruger bare sit nick, og hvis aingen andre har det lige nu, kan han bruge det som han vil, men kan miste det når han forlader chatten?
Eller bindes et nick til en konto (et login), IP eller andet?

Når du ved det, så sendes det som identificerer chat brugerend med over i alarmen, så ved du hvem der klikkede alarm.
Den bruger der kickes i x minutter, bliver kicket på det som identificerer ham.

Så find ud af hvad der identificerer dine chat brugere .... IP, session, nick, database login id, eller noget helt andet?



Forudsat at du ikke direkte kan sende til co adminens client. så burde du kunne lave et system hvor brugerne nå de trykker på en alarm opretter en fil i en mappe lavet til alarmer, så har adminen et system der checker denne mappe for filer og hvis nogen findes returnere infoen gemt i disse og evt. sletter dem med det samme. Kan også laves med en database tabel hvis det foretrækkes.
-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/



Brugerne har et nr. hver som de logger ind med.

Men synes ikke jeg har fået helt svar på spørgsmålene.

Er der ikke nogen som har set en chat database eller admin panel hvor man kan smide folk ud af chatten?

Hvordan ser du ud? Jeg kan jo ikke lave f.eks. en select box med brugere der er online på sitet og så finde pågældende der skal ud af chatten på den måde....



Jeg ville nok lave en tabel med online brugere (hvor deres bruger-id er med) og den måde holde styr på hvem der er online.

Derfra kan du så hive brugerne over i en SELECT og der igennem kan coadmins fjerne dem fra tabellen (eller sparke dem ud).

Denne tabel kunne holde styr på andre ting, såsom onlinetid, nickskifte, mv.

Mht. banlysning af brugere er det jo bare at lave et banned-felt i brugerdatabasen, f.eks. som timestamp, hvor brugeren ikke kan logge ind, medmindre datoen er overskredet.

Håber det hjælper.

Nå ja, mht. logføring, så mener jeg personligt at du bør logføre alt det du nævner.

-
Mvh.
Christian Schultz Knudsen


[Redigeret d. 17/10-05 14:17:19 af Christian Schultz Knudsen]



Jeg kan godt høre i er vant til databaser osv. - jeg falder næsten af på den med jeres forklaringer.

Hvordan det teknisk set kommunikerer med hinanden finder programmøren ud af, jeg er bare interesseret i det visuelle og funktionsmæssige.

Hvordan skal tingene se ud - altså hvad skal tabellen I vil lave indeholde præcis, og hvad når man har flere chat rum?

Bør der være 1 side med oversigt over chatrum og ud for hvert rum stå antal brugere i rummet. Og så kan man klikke i et chatrum og se navne osv. på brugere i rummet? Mulighed for at følge en bruger - hvad er vigtigt? Og hvad hvis brugeren hopper ud af chatten, men man vil stadig udelukke ham i f.eks. ½ time. Hvor skal jeg så finde brugeren? Der vil jo formentlig være mange online på sitet?

Bør man gemme en logfil, og hvordan finder man nemmest en log optaget f.eks. kl. 14:00 i går? Kan den gemmes med intervaller? Hvor mange logfiler bør man gemme? For 14 dage (alle chatrum) eller?

Er virkelig på bar bund her.



Her er en illustration der nok skal benyttes sammen med ovenstående indlæg:
http://diggy.dk/gfx/chat_skitse.jpg

-
Mvh.
Christian Schultz Knudsen



Tak for det uddybende svar Christian Schultz Knudsen!!

Nu bliver jeg lidt i tvivl her. Mener du at jeg skal tage den chat som brugerne benytter og sætte skjulte funktioner på til admins?

Det vil så sige at når en admin logger ind (har også et nr. og status som admin) vil han se chatten anderledes - nemlig med ekstra funktioner? Vi taler chatten på frontend.

Eller vil du have en skrabet version af chatten i databasen, hvor admin kan følge med. Den skrabet version kører efter den oprindelige chat på frontend.

Man kunne måske lave et ekstra felt med brugere, så man har et felt med brugere der er online i chatten og så et felt med dem som er logget af, men som har været der inden for den sidste time. Så kan man nemmere finde én som er logget af chatten og som man vil sikre bliver udelukket fra chatten i x antal minutter.

Sætter stor pris på hjælpen!!



Tak for det uddybende svar Christian Schultz Knudsen!!

Nu bliver jeg lidt i tvivl her. Mener du at jeg skal tage den chat som brugerne benytter og sætte skjulte funktioner på til admins?

Det vil så sige at når en admin logger ind (har også et nr. og status som admin) vil han se chatten anderledes - nemlig med ekstra funktioner? Vi taler chatten på frontend.

Eller vil du have en skrabet version af chatten i databasen, hvor admin kan følge med. Den skrabet version kører efter den oprindelige chat på frontend.

Jeg mener at knappen / kommandoen til administrative funktioner skal være tilgængelig gennem den gængse frontend, men kun for brugere der er tildelt administrative privilegier (vha. et felt i brugerdatabasen).
Så kunne din programmør lave en "hvis (bruger der forespørger administrativt interface er admin) { vis administrative funktioner } ellers { vis fejlmeddelelse }"

Man kunne måske lave et ekstra felt med brugere, så man har et felt med brugere der er online i chatten og så et felt med dem som er logget af, men som har været der inden for den sidste time. Så kan man nemmere finde én som er logget af chatten og som man vil sikre bliver udelukket fra chatten i x antal minutter.

Hvis du mener at du vil udelukke folk baseret på ip-adressen, så er den idé god nok. Hvis du som jeg tidligere foreslog logger alt du kan logge, skulle det ikke være det store problem at strikke sammen for din programmør.

Hvis du decideret vil banlyse en brugerkonto (Lise12år f.eks.), så er det nemmest at gå direkte ind i den "statiske" bruger-tabel i databasen, som så kunne have et felt kaldet "banned" hvor man så kunne smide et tidsstempel ind.

Når brugeren så forsøger at logge på, så kan login-systemet gå ind og se på indholdet af dette felt. Er datoen en fremtidig dato, så er den STØRRE END resultatet af en time() i php (eller et ganske almindeligt unix timestamp), er den ikke større, så er det enten nutid eller datid. Altså skal dette tidsstempel repræsentere hvornår brugeren igen må benytte chatten og det kan jo fint sættes til "nuværende klokkeslet" når brugeren opretter sig.



Jeg håber det giver mening. Jeg er programmør, men jeg har forsøgt at simplificere det, eller skrive det på jysk om du vil :-P
-
Mvh.
Christian Schultz Knudsen



Hvis du mener at du vil udelukke folk baseret på ip-adressen, så er den idé god nok. Hvis du som jeg tidligere foreslog logger alt du kan logge, skulle det ikke være det store problem at strikke sammen for din programmør.

Hvis du decideret vil banlyse en brugerkonto (Lise12år f.eks.), så er det nemmest at gå direkte ind i den "statiske" bruger-tabel i databasen, som så kunne have et felt kaldet "banned" hvor man så kunne smide et tidsstempel ind.

Når brugeren så forsøger at logge på, så kan login-systemet gå ind og se på indholdet af dette felt. Er datoen en fremtidig dato, så er den STØRRE END resultatet af en time() i php (eller et ganske almindeligt unix timestamp), er den ikke større, så er det enten nutid eller datid. Altså skal dette tidsstempel repræsentere hvornår brugeren igen må benytte chatten og det kan jo fint sættes til "nuværende klokkeslet" når brugeren opretter sig.


Vi er lige ved at være der. Vil bare have styr på den der banned...

Når nu en co-admin styrer det meste på frontend (god idé) - så ville det jo være praktisk at det der banned også kunne foregå der. Men mangler blot løsningen på hvordan man skal finde en bruger så? Det er jo noget fumleri hvis man sidder i chatten og styrer ting og sager, og så pludselig skal smide én ud, logge ind i databasen og søge på personen osv.

Problemet er så hvis personen logger af i mellemtiden - hvis jeg ville have banned funktionen på frontend - hvordan finder man ham så når han ikke er i chatten?

Nogen smart måde at gøre det på her?

Vi kører forresten i ASP og Microsoft database SQL (sitet skal dog konverteres til asp.net) i fremtiden.



<< < 12 > >>
t