Avatar billede Slettet bruger
12. september 2005 - 22:16 Der er 24 kommentarer og
1 løsning

En lille chat

Hej eksperter.
Jeg har brug for et script der på en eller anden måde, at man kan skrive i et input text felt, og så skal den jo så tilføjes i databasen.

Men hvordan får jeg hivet dem ordenligt ind i mit textarea?
Det skal jo ikke være sådan at den henter alle beskederne for hver gang.

Men hvordan gør man ellers for man skal jo ikke opdater siden for at få dem med.

Hvis man er logget ind kl. 22 skal man ikke se dem fra kl. 21, altså der skal være clear'ede.


Håber I kan hjælpe mig vil ofre 300 points, hvis jeg får det jeg beder om.
Avatar billede Slettet bruger
12. september 2005 - 22:28 #1
Det kan også være jeg udvikler den i Flash, men stadig skal jeg vide hvordan og hvorledes dette skal gøres...

For har før lavet en Flash chat, først hentede den bare de sidste 10 skrevende beskeder inde (efter dato) men så prøvede jeg så at hente alle hvor dato < dato-2
altså hente alle der maks hvor 2 sekunder gamle, og nogen gange var den for lang tid til at opdatere til at få det hele med osv... så skal lige vide, hvad jeg gør
Avatar billede Slettet bruger
12. september 2005 - 22:28 #2
Men som sagt er der 300 points på høj kant
Avatar billede olebole Juniormester
12. september 2005 - 22:29 #3
<ole>

Alle beskeder forsynes med et timestamp i DB'en. Når en bruger henter beskeder, får han indsat et timestamp i en cookie - som bruges til at filtrere beskeder i SQL-kaldet næste gang, han henter.

Når en bruger logger ind, sletter han gamle beskeder i DB'en, så der clean'es lidt op. Det er der dog ingen grund til at gøre ved hver serverforespørgsel.

Sørg for kun at sende rå data tilbage til brugeren. HTML-formateringen bør foretages i browseren.

Brug ikke * i dine MySQL-kald - og sørg for, din tabel er ordentligt indekseret i forhold til kaldene.

I øvrigt kan du ikke give mere end 200 points for et spørgsmål  :)

/mvh
</bole>
Avatar billede olebole Juniormester
12. september 2005 - 22:30 #4
- og undlad opdaterings intervaller mindre end 10 sekunder  :)
Avatar billede Slettet bruger
13. september 2005 - 06:47 #5
Men forstår stadig ikke hvordan kodemæssigt, jeg skal lave det.
Og cookie's har jeg ikke rodet med før.
Men der bliver indsat date("%Y-%m-%d %H:%M:&S"); ved hver besked der bliver skrevet, sådan så man kan se klokken.

Men hvordan er det time(); den sætter klokken om, det kan jeg squ ikke se :D

Hvad er der galt med * i MYSQL - kaldet?

Ville lave et spørgsmål til og give 100 points mere jo. :D
Avatar billede Slettet bruger
13. september 2005 - 08:02 #6
Altså det med date(); Det er jo for at kunne se hvornår brugeren har indsat et objekt
Avatar billede drbean Nybegynder
13. september 2005 - 10:07 #7
Tror det olebole mente var du må kun uddele 200 point ifølge reglerne.

Når du laver et timestamp i din DB, er det hurtigere at hente de informationer ud du skal bruge. Et timestamp er sek. siden 1970 (tror det er det årstal)

Når du bruger * i dine MySQL kald, bruger du mange resourcer. Samtidig er det ikke sikkert du skal bruge alle de ting du henter ud. Derfor, hent kun de rækker du skal bruge.
Avatar billede Slettet bruger
13. september 2005 - 10:14 #8
Okay... men jeg vil gerne også have noget praksis :P
Avatar billede drbean Nybegynder
13. september 2005 - 10:55 #9
Har desværre ikke tid til at kode så meget for tiden.

Men mener der er masser der har stillet spørgsmål i samme stil som dig:

http://www.eksperten.dk/spm/Programmering/Script/PHP/?sort=&order=DESC&status_1=on&status_2=on&status_3=on&spm_creator=&spm_part=&spm_answer=&find=chat&engine=exp
Avatar billede olebole Juniormester
13. september 2005 - 12:19 #10
I udgangspunktet kan er HTTP-protokollen i kombination med et scriptsprog helt uegnet til chat-applikationer ... det vil altid performe elendigt. Er du ikke virkelig stærk i PHP/MySQL, DOM og JavaScript, er det nok slet ikke en opgave for dig  :)
Avatar billede olebole Juniormester
13. september 2005 - 12:21 #11
- og så kan du under ingen omstændigheder uddele mere end 200 points for et spm. Du kan heller ikke åbne et andet spørgsmål med 100 points og en reference til dette  :)
Avatar billede Slettet bruger
13. september 2005 - 12:32 #12
men skal bare vide hvordan jeg skal hente det og det er jo "næsten" kun det
Avatar billede drbean Nybegynder
13. september 2005 - 13:24 #13
Så er du nød til at lave et felt i din DB med et timestamp. Så har du en cookie (http://dk.php.net/manual/da/function.setcookie.php) med et timestamp i (http://dk.php.net/manual/da/function.time.php), hvornår brugeren sidst har hentet beskeder.

Så er det blot at lave et SQL udtryk der sammenligner de 2 tider og henter dem der er nyere end din cookie.
Avatar billede Slettet bruger
13. september 2005 - 14:17 #14
Men kunne jeg ikke også lave en varibaler f.eks. sidsthent (navnet er ligegyldigt)
og så hvergang den opdatere i flash, så sætter den sidsthent til den tid man sidst har opdateret, og så henter den alle beskeder hvor sidsthent
Avatar billede drbean Nybegynder
13. september 2005 - 14:29 #15
Jo, men du skal bare sørge for at den variabel ligger i en cookie. Og så skulle det gerne bliver det samme som Olebole mente. (Så vidt jeg kan se)
Avatar billede ingenproblem Nybegynder
13. september 2005 - 14:31 #16
der er en masse scripts her www.java.dk
Avatar billede Slettet bruger
13. september 2005 - 18:57 #17
Men jeg forstår ikke helt hvad en cookie gør, fordi hvad kan en variable ikke som ikke cookie kan?

Og i dette tilfælde er løsningen vel lige gyldig?
Avatar billede olebole Juniormester
13. september 2005 - 19:23 #18
En cookie er en lille tekstfil, der bliver skrevet på brugerens HD - og som kan læses af sitet, der har leveret den. I den kan du gemme variabler af forskellig slags.

Men det er stadig tydeligt, at du slet ikke er klar til at skrive en chat. Hvorfor ikke lære noget grundlæggende PHP/MySQL først?
Avatar billede Slettet bruger
13. september 2005 - 19:41 #19
Jeg kan det grundlæggende af begge dele.
Men har bare ikke arbejde med disse funktioner
Avatar billede Slettet bruger
23. april 2006 - 21:21 #20
Ole lægger du lige et svar?
Mener det er ole der har for tjent points.
Avatar billede olebole Juniormester
25. april 2006 - 14:32 #21
- så er det lagt  :)
Avatar billede Slettet bruger
30. april 2006 - 10:32 #22
tak for hjælpen.
Avatar billede olebole Juniormester
30. april 2006 - 23:43 #23
- og tak for points  :)
Avatar billede Slettet bruger
04. juli 2006 - 15:10 #24
Men olebole> Ville det ikke være nemmer at sætte en variable der indholdte hvad tid brugeren have hentet beskederne, frem for cookies?
Cookies kan man jo slå fra, i browseren.
Avatar billede Slettet bruger
04. juli 2006 - 15:31 #25
Men bruger man også bare funktion setcookie til at hente indholdet ud fra cookies? (Kan selvfølgelig selv læse om det, men er nemmer med et svar jo :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