/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Chatkode - hvordan vendes liniernes rækkef~
Fra : Jakob Munck


Dato : 04-09-01 16:14

Denne chatkode er lavet af Lauritz Jensen, og jeg og jeg forsøger at bruge
den i stedet for database i en lille chat. Men koden her skriver
chatlinierne ud sådan at de sidst indskrevne kommer nederst. Jeg vil gerne
vende det, så de sidst indskrevne kommer øverst. Jeg mener der skal rettes
noget i en af de linier, jeg har skrevet + foran, men hvad?

Råd modtages med glæde.

<%
' messagelist = liste over tidspunkt og besked for alle indsatte linier i
chatten.

Dim func, message
randomize
message = Left(Trim(Request("message")), 100)
func = LCase(Trim(Request("func")))

If (func = "") Then
Response.Write "<frameset rows=""*,100"">" & vbCrLf
Response.Write " <frame name=""messageframe""
src=""chat.asp?func=message"">" & vbCrLf
Response.Write " <frame name=""formframe"" src=""chat.asp?func=form"">" &
vbCrLf
Response.Write "</frameset>" & vbCrLf
ElseIf (func = "message") Then
If Not (message = "") Then
Application.Lock
+ messagelist = Application("messagelist")
+ Do While (UBound(split(messagelist, "<br>"))>30)
+ messagelist = Mid(messagelist, InStr(messagelist, "<br>")+4)
+ Loop
+ If Not (messagelist = "") Then messagelist = messagelist & "<br>"
+ messagelist = messagelist & "<b>" & Now & "</b>: " &
Server.HtmlEncode(message)
+ Application("messagelist") = messagelist
Application.UnLock
Else
messagelist = Application("messagelist")
End If
Response.Write "<META HTTP-EQUIV=""Refresh"" CONTENT=""15;
URL=chat.asp?func=message&rnd=" & ran & """>" & vbCrLf
Response.Write "<body bgcolor=#ffffff>" & vbCrLf
Response.Write messagelist & vbCrLf
Response.Write "</body>" & vbCrLf
ElseIf (func = "form") Then
Response.Write "<body bgcolor=#ffffff>" & vbCrLf
Response.Write " <form name=""chatform"" action=""chat.asp""
target=""messageframe""
onSubmit=""document.chatform.message.value=document.chatform.dummymessage.va
lue;document.chatform.dummymessage.value='';document.chatform.dummymessage.f
ocus();"">" & vbCrLf
Response.Write " <input type=hidden name=""func"" value=""message"">" &
vbCrLf
Response.Write " <input type=hidden name=""message"" value="""">" &
vbCrLf
Response.Write " <input type=text name=""dummymessage"" value=""""
maxlength=100>" & vbCrLf
Response.Write " <input type=submit value=""Send"">" & vbCrLf
Response.Write " </form>" & vbCrLf
Response.Write "</body>" & vbCrLf
Else
Response.Redirect "/"
End If

%>

v.h.
Jakob Munck




 
 
Anders Holbøll (04-09-2001)
Kommentar
Fra : Anders Holbøll


Dato : 04-09-01 16:23

Jakob Munck wrote:
>
> Denne chatkode er lavet af Lauritz Jensen, og jeg og jeg forsøger
> at bruge den i stedet for database i en lille chat. Men koden her
> skriver chatlinierne ud sådan at de sidst indskrevne kommer
> nederst. Jeg vil gerne vende det, så de sidst indskrevne kommer
> øverst. Jeg mener der skal rettes noget i en af de linier, jeg
> har skrevet + foran, men hvad?

Prøv at skifte det med + markerede ud med:

messagelist = Application("messagelist")
messagelist = "<b>" & Now & "</b>: " & _
Server.HtmlEncode(message) & "<br>" & messagelist
messagelist = join(split(messagelist, "<br>", 30), "<br>")
Application("messagelist") = messagelist

--
Anders

Jakob Munck (04-09-2001)
Kommentar
Fra : Jakob Munck


Dato : 04-09-01 18:45

Tak for rådet, men det gav ikke det ønskede resultat, men der kom dog heller
ingen fejlmelding. ¨

Der kom - tilsyneladende - bare en masse nye linier med denne kode i den
sidste indtastning.

>
> Prøv at skifte det med + markerede ud med:
>
> messagelist = Application("messagelist")
> messagelist = "<b>" & Now & "</b>: " & _
> Server.HtmlEncode(message) & "<br>" & messagelist
> messagelist = join(split(messagelist, "<br>", 30), "<br>")
> Application("messagelist") = messagelist
>
> --
> Anders



Anders Holbøll (05-09-2001)
Kommentar
Fra : Anders Holbøll


Dato : 05-09-01 14:15

Jakob Munck wrote:
> Anders Holbøll wrote:
> > Jakob Munck wrote:
> > >
> > > koden her skriver chatlinierne ud sådan at de sidst indskrevne
> > > kommer nederst. Jeg vil gerne vende det, så de sidst indskrevne
> > > kommer øverst.
> >
> > Prøv:
> > messagelist = Application("messagelist")
> > messagelist = "<b>" & Now & "</b>: " & _
> > Server.HtmlEncode(message) & "<br>" & messagelist
> > messagelist = join(split(messagelist, "<br>", 30), "<br>")
> > Application("messagelist") = messagelist
>
> Der kom - tilsyneladende - bare en masse nye linier med denne kode
> i den sidste indtastning.

Jeg forstår ikke hvad du mener. Men man kunne angribe problemet fra en
anden vingel og så samtidig optimerer lidt. Det sted, du markerede i
først post, udskifter du med:

messagelist = Application("messagelist")
If (messagelist = "") Then
messagelist = Replace(Space(29), " ", "<br>")
End If
messagelist = "<b>" & Now & "</b>: " & _
Server.HtmlEncode(message) & "<br>" & messagelist
messagelist = Left(messagelist, InStrRev(messagelist, "<br>") - 1)
Application("messagelist") = messagelist

(Gider du ikke at prøve at citere lidt bedre?
http://www.usenet.dk/netikette/quote.html )
--
Anders

Jakob Munck (05-09-2001)
Kommentar
Fra : Jakob Munck


Dato : 05-09-01 15:46

Hej Anders

tak for forslagene. Det sidste forslag får "chatten" vil at virke præcis som
den gjorde fra starten, nemlig sådan at den sidst indskrevne linie vises
neder, og ikke øverst, som det skal, hvis chatten skal anvendes i praksis
(efter min mening).

Men jeg er imponeret over, at du overhovedet kan finde ud af denne kode,
for - for mig - er den temmelig uforståelig.

Hvis det lykkes for dig at finde ud af, hvorda udskrivningen vender, så
sidst indskrevne linie vises øverst, så kan du måske også finde ud af, hvor
i koden man skal indsætte navnet på den person, der skriver indlægget. Det
er der nemlig ikke taget højde for i koden som den er nu.

v.h.
Jakob Munck



Anders Holbøll (05-09-2001)
Kommentar
Fra : Anders Holbøll


Dato : 05-09-01 16:32

Jakob Munck wrote:
>
> Det sidste forslag får "chatten" vil at virke præcis som den gjorde
> fra starten, nemlig sådan at den sidst indskrevne linie vises neder,
> og ikke øverst, som det skal, hvis chatten skal anvendes i praksis
> (efter min mening).

Det forstår jeg ikke. Nu har jeg oven i købet testet det. Er du (helt)
sikker på at nyeste beskeder vises nederst?

> for mig [er koden] temmelig uforståelig.

Jamen, så er her jo en glimrende lejlighed til at blive bedre til asp.
Prøv at læse koden igennem og forstå den. Hvis du har konkrete
problemer, så prøv at stil dem her i gruppen, så er der sikkert nogen
der vil hjælpe dig.

> hvor i koden [skal man] indsætte navnet på den person, der skriver
> indlægget. Det er der nemlig ikke taget højde for i koden som den
> er nu.

Lige nu er der jo slet ikke nogen navne på brugene i chatten. Men der
skal jo laves et velkomstbillede, hvor man kan taste sit navn ind i en
formular. Dette navn skal så checkes, for om det er lovlig (det ikke er
for langt, ikke allerede er taget, osv.) og der på gemmes dels i en
session variabel og del i en liste i en application variabel (så man kan
se hvem der er i chatten og kan checke at nye brugere ikke også tager
navnet). Så skal der i linien, hvor en ny besked tilføjes til
messagelist indføjes navnet fra session-variablen.

--
Anders

Jakob Munck (05-09-2001)
Kommentar
Fra : Jakob Munck


Dato : 05-09-01 19:45

Ja, jeg er helt sikker på at koden skriver den sidst indskrevne linie ud
nederst, altså modsat det ønskede. Den kode jeg taler om er den - efter dine
råd - reviderede, og den er for klarheds skyld indsat neder i denne mail.
Jeg forstår ikke, hvis den skulle udskrive anderledes på din server end på
min (!!), det lyder temmelig usandsynligt.

Jeg vil være MEGET glad, hvis jeg kan bruge denne - for mig - temmelig svære
kode som udviklingsopgave, ikke kun fordi jeg skal bruge koden i praksis,
men også fordi den, som du siger, er rigtig god for mig at lære af. Hvis
du - og andre kloge - vil hjælpe med svar, så vil jeg meget gerne arbejde
videre med koden.

Men i første omgang er problemet altså det, at få den til at skrive ud
omvendt af hvordan den gør nu.

v.h.
Jakob

-----------------------------------------------
Her er koden:

<%
' messagelist = liste over tidspunkt og besked for alle indsatte linier i
chatten.

Dim func, message
randomize
message = Left(Trim(Request("message")), 100)
func = LCase(Trim(Request("func")))

If (func = "") Then
Response.Write "<frameset rows=""*,100"">" & vbCrLf
Response.Write " <frame name=""messageframe""
src=""chat.asp?func=message"">" & vbCrLf
Response.Write " <frame name=""formframe"" src=""chat.asp?func=form"">" &
vbCrLf
Response.Write "</frameset>" & vbCrLf
ElseIf (func = "message") Then
If Not (message = "") Then
Application.Lock
messagelist = Application("messagelist")
If (messagelist = "") Then
messagelist = Replace(Space(29), " ", "<br>")
End If
messagelist = "<b>" & Now & "</b>: " & _
Server.HtmlEncode(message) & "<br>" & messagelist
messagelist = Left(messagelist, InStrRev(messagelist, "<br>") - 1)
Application("messagelist") = messagelist
Application.UnLock
Else
messagelist = Application("messagelist")
End If
Response.Write "<META HTTP-EQUIV=""Refresh"" CONTENT=""15;
URL=chat.asp?func=message&rnd=" & ran & """>" & vbCrLf
Response.Write "<body bgcolor=#ffffff>" & vbCrLf
Response.Write messagelist & vbCrLf
Response.Write "</body>" & vbCrLf
ElseIf (func = "form") Then
Response.Write "<body bgcolor=#ffffff>" & vbCrLf
Response.Write " <form name=""chatform"" action=""chat.asp""
target=""messageframe""
onSubmit=""document.chatform.message.value=document.chatform.dummymessage.va
lue;document.chatform.dummymessage.value='';document.chatform.dummymessage.f
ocus();"">" & vbCrLf
Response.Write " <input type=hidden name=""func"" value=""message"">" &
vbCrLf
Response.Write " <input type=hidden name=""message"" value="""">" &
vbCrLf
Response.Write " <input type=text name=""dummymessage"" value=""""
maxlength=100>" & vbCrLf
Response.Write " <input type=submit value=""Send"">" & vbCrLf
Response.Write " </form>" & vbCrLf
Response.Write "</body>" & vbCrLf
Else
Response.Redirect "/"
End If

%>



Anders Holbøll (07-09-2001)
Kommentar
Fra : Anders Holbøll


Dato : 07-09-01 12:35

Jakob Munck wrote:
>
> Ja, jeg er helt sikker på at koden skriver den sidst indskrevne
> linie ud nederst, altså modsat det ønskede. Den kode jeg taler
> om er den - efter dine råd - reviderede, og den er for klarheds
> skyld indsat neder i denne mail.

Jeg ville nok checke en ekstra gang, at den kode du har i din editor, er
den samme som den du ser på med din browser. Det er sket får, at man har
siddet og rettet i en backup og derfor ikke ser ændriger i browseren
eller at iis har cachet koden.

--
Anders

Jakob Munck (06-09-2001)
Kommentar
Fra : Jakob Munck


Dato : 06-09-01 07:46

> Lige nu er der jo slet ikke nogen navne på brugene i chatten. Men der
> skal jo laves et velkomstbillede, hvor man kan taste sit navn ind i en
> formular. Dette navn skal så checkes, for om det er lovlig (det ikke er
> for langt, ikke allerede er taget, osv.) og der på gemmes dels i en
> session variabel og del i en liste i en application variabel (så man kan
> se hvem der er i chatten og kan checke at nye brugere ikke også tager
> navnet). Så skal der i linien, hvor en ny besked tilføjes til
> messagelist indføjes navnet fra session-variablen.
>

Jeg skal lige sige, at jeg rent faktisk allerede har en fungerende
databasebaseret chat, hvor alt dette fungerer, men den kode vi her
diskuterer vil jeg indføre i min eksisterende chat for at lave
opdateringsblinkene mindre. Når man bruger en Access-database er disse
opdateringsblink, som kommer hvert 10. sekund af ca. 1 sekunds varighed, og
det er lang tid og derfor generende. Hvis man i stedet lavet en
Applications-objekt-baseret chat, så er disse blink kortere og mindre
generende.

Med herværende kode, som er en særlig optimeret form for Application-objekt
chat er blinkene så små og hurtige som de overhovedet kan blive (tror jeg),
og derfor vil jeg indføre de centrale dele af herværende kode i min
nuværende chat - altså hvis herværende kode kommer til at virke med sidste
linie øverst og med brugerens navn (som i forvejen ligger i en
sessionvariabel) ud for hvert indlæg.

Men, som sagt, jeg forstår ikke koden.

v.h.
Jakob




Anders Holbøll (07-09-2001)
Kommentar
Fra : Anders Holbøll


Dato : 07-09-01 12:38

Jakob Munck wrote:
>
> [brug af databaser til chat er langsomt]
> Med herværende kode, som er en særlig optimeret form for
> Application-objekt chat er blinkene så små og hurtige som
> de overhovedet kan blive (tror jeg),

Du kan naturligvis gøre "blinkene" kortere ved bruge af dhtml. Det er jo
det flere af de "store chats" gør.

--
Anders

Jakob Munck (07-09-2001)
Kommentar
Fra : Jakob Munck


Dato : 07-09-01 14:15

Jeg har fundet noget ny kode, der - i princippet - er ligesom den jeg her
lagde frem, men den udskriver bare omvendt, altså sådan som jeg vil have
det. Den er jeg ved at gøre i stand.

>
> Du kan naturligvis gøre "blinkene" kortere ved bruge af dhtml. Det er jo
> det flere af de "store chats" gør.
>

Hvordan kan man bruge dhtml til at gøre blinkene kortere, det forstår jeg
ikke ?


v.h.
Jakob Munck



Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408872
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste