08. oktober 2000 - 20:17Der er
56 kommentarer og 1 løsning
chat...privat ?? hvordan ??
Hej
Jeg sidder lige og laver en lille chat, det går også helt fint, men jeg kan ikke helt gennemskue hvordan jeg skal lave så man kan snakke privat! Nogen som kan fortælle mig hvordan man kunne gøre det ?? Altså om man skal bygge det i et array eller hvad ?
når så de submitter det til din ASP side så laver du den lidt om så der står:
/msg (til) (fra) (besked)
f.eks.
Dim line()
besked=ltrim(rtrim(request(\"dit_besked_felt\"))) username = [hvordan du nu identificere brugeren]
line=split(besked,\" \")
if ubound(line) > 1 then line=\"/msg \" & line(1) & \" \" & username & \" \" & line(2) end if
Når så du skriver teksten på skærmen så laver du en:
(løkke) .. line=application(\"chattext\") if left(line,5) =\"/msg \" then dim privmsg() privmsg = split(line,\" \") to = line(1) from = line(2) msg = line(3)
if lcase(to) = lcase(username) then line = \"<b>\" & from & \"</b> fortæller dig: \" & msg end if end if
if len(line) > 0 then response.write line .. (løkke-slut)
Hvis ikke din chat er ALT for stor i filer/størrelse så kan du (hvis du altså vil) sende den til mig og så skal jeg se om det er muligt for mig at lave din chat om til så folk kan skrive privat. Men jeg kan ikke love noget (kommer an på hvordan din chat ser ud nu...)
Hvis du indsætter det her øverst i den ASP fil du kalder nå en bruger submitter sin tekst:
<% strLine = \"snak\" \' bare for en ordens skyld, hvis du finder på at lave mere end et chatrum. intMessages = 60 \' Max antal linier der skal gemmes.
Sub InsertLine(strLine) For intIndex = intMessages To 2 Step - 1 Application(strLine & intIndex) = Application(strLine & intIndex - 1) Next
Application(strLine & \"1\") = strLine End Sub
Sub WriteLines(intLines) \' intLines er det antal linier der skal skrives på skærmen. Da det ikke er et rigtigt \' array vil du ikke få en \"Subscript out of range\" selvom intLines er over max. antal \' linier.
For intIndex = 1 To intLines Response.Write Application(strLine & intIndex) Next End Sub %>
strLine = \"snak\" \' bare for en ordens skyld, hvis du finder på at lave mere end et chatrum. intMessages = 60 \' Max antal linier der skal gemmes.
Sub InsertLine(strLine) For intIndex = intMessages To 2 Step - 1 Application(strLine & intIndex) = Application(strLine & intIndex - 1) Next
Application(strLine & \"1\") = strLine End Sub
Sub WriteLines(intLines) \' intLines er det antal linier der skal skrives på skærmen. Da det ikke er et rigtigt \' array vil du ikke få en \"Subscript out of range\" selvom intLines er over max. antal \' linier.
For intIndex = 1 To intLines Response.Write Application(strLine & intIndex) Next End Sub
%> <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<body bgcolor=\"#c0c0c0\"> <% if mode =\"add\" then say = Server.HTMLEncode(Request.form(\"say\"))
insertline(say)
Response.redirect(\"talk.asp\") end if %> <% if mode = \"chat\" then %> <div style=\"font-family:verdana; font-size:12px;\"> <% Writelines 30 %> </div> <% end if %> </body> </html>
her er rettet lidt hist og her, og lavet så den skulle kunne finde ud af at chatt privat :)
man skriver:
/msg (til) (besked)
(f.eks. \"/msg tdaugaard Hejsa! hvad laver du?\"
---- <% mode = request.querystring(\"mode\")
strLine = \"snak\" \' bare for en ordens skyld, hvis du finder på at lave mere end et chatrum. intMessages = 60 \' Max antal linier der skal gemmes.
Function Comb(arrArray, intStart) \' funktion til at kombinere et array til een streng. For intArrayIndex = intStart To UBound(arrArray) strArr = arrArray(intArrayIndex): If strArr = \"\" Then strArr = \" \" strComb = strComb & \" \" & strArr Next
Comb = LTrim(RTrim(strComb)) End Function
Sub InsertLine(strLine) For intIndex = intMessages To 2 Step - 1 Application(strLine & intIndex) = Application(strLine & intIndex - 1) Next
Application(strLine & \"1\") = strLine End Sub
Sub WriteLines(intLines) \' intLines er det antal linier der skal skrives på skærmen. Da det ikke er et rigtigt \' array vil du ikke få en \"Subscript out of range\" selvom intLines er over max. antal \' linier.
For intIndex = 1 To intLines strLine = Application(strLine & intIndex)
if left(lcase(strLine), 5) = \"/msg \" then \' hvis der skal sendes til en bruger privat array = split(strLine, \" \") \' split strengen op i et array. to = array(1) from = array(2) msg = Comb(array, 3)
if to = session(\"nick\") then strFinalLine = \"<b>\" & from & \"</b> tells you <b>\" & msg & \"</b>\" if from = session(\"nick\") then strFinalLine = \"<b>You</b> tell <b>\" & to & \"</b>: \" & msg else strFinalLine = strLine end if
if strLine > \"\" then Response.Write strFinalLine Next End Sub %> <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
jeg ved godt du ikke ville have mig til at lave det, men det her er en BASIC funktion (den virker!) og det ville være for svært at forklare hvordan du skulle gøre det
Nææ .. for endnu en gang sov jeg da jeg skrev koden.. *g* sorry
brug denne her istedet (jeg har rettet fejlen ved TO, og den \"nye\" fejl)
--- <% mode = request.querystring(\"mode\")
strLine = \"snak\" \' bare for en ordens skyld, hvis du finder på at lave mere end et chatrum. intMessages = 60 \' Max antal linier der skal gemmes.
Function Comb(arrArray, intStart) \' funktion til at kombinere et array til een streng. For intArrayIndex = intStart To UBound(arrArray) strArr = arrArray(intArrayIndex): If strArr = \"\" Then strArr = \" \" strComb = strComb & \" \" & strArr Next
Comb = LTrim(RTrim(strComb)) End Function
Sub InsertLine(strInsLine) For intIndex = intMessages To 2 Step - 1 Application(strLine & intIndex) = Application(strLine & intIndex - 1) Next
Application(strLine & \"1\") = strInstLine End Sub
Sub WriteLines(intLines) \' intLines er det antal linier der skal skrives på skærmen. Da det ikke er et rigtigt \' array vil du ikke få en \"Subscript out of range\" selvom intLines er over max. antal \' linier.
For intIndex = 1 To intLines strWrtLine = Application(strLine & intIndex)
if left(lcase(strWrtLine), 5) = \"/msg \" then \' hvis der skal sendes til en bruger privat array = split(strWrtLine, \" \") \' split strengen op i et array. strTo = array(1) strFrom = array(2) strMsg = Comb(array, 3)
if strTo = session(\"nick\") then strFinalLine = \"<b>\" & from & \"</b> tells you <b>\" & strMsg & \"</b>\" if strFrom = session(\"nick\") then strFinalLine = \"<b>You</b> tell <b>\" & to & \"</b>: \" & strMsg else strFinalLine = strWrtLine end if
if strWrtLine > \"\" then Response.Write strFinalLine Next End Sub %> <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
strLine = \"snak\" \' bare for en ordens skyld, hvis du finder på at lave mere end et chatrum. intMessages = 60 \' Max antal linier der skal gemmes.
Function Comb(arrArray, intStart) \' funktion til at kombinere et array til een streng. For intArrayIndex = intStart To UBound(arrArray) strArr = arrArray(intArrayIndex): If strArr = \"\" Then strArr = \" \" strComb = strComb & \" \" & strArr Next
Comb = LTrim(RTrim(strComb)) End Function
Sub InsertLine(strInsLine) For intIndex = intMessages To 2 Step - 1 Application(strLine & intIndex) = Application(strLine & intIndex - 1) Next
Application(strLine & \"1\") = strInstLine End Sub
Sub WriteLines(intLines) \' intLines er det antal linier der skal skrives på skærmen. Da det ikke er et rigtigt \' array vil du ikke få en \"Subscript out of range\" selvom intLines er over max. antal \' linier.
For intIndex = 1 To intLines strWrtLine = Application(strLine & intIndex)
if left(lcase(strWrtLine), 5) = \"/msg \" then \' hvis der skal sendes til en bruger privat array = split(strWrtLine, \" \") \' split strengen op i et array. strTo = array(1) strFrom = array(2) strMsg = Comb(array, 3)
if strTo = session(\"nick\") then strFinalLine = \"<b>\" & from & \"</b> tells you <b>\" & strMsg & \"</b>\" if strFrom = session(\"nick\") then strFinalLine = \"<b>You</b> tell <b>\" & strto & \"</b>: \" & strMsg else strFinalLine = strWrtLine end if
if strFinalLine > \"\" then Response.Write strFinalLine
Next End Sub %> <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
nu er drean gået i seng så du ser nok ikke så meget mere til ham i dag, så du får ikke nogen tilbage meldig hvis du venter det :o) jeg snakker med ham over icq\'en, og er med til at teste chatten :o)
øhm...tænkte nok der var et sted jg glemte at sige jeg gik i seng. Det må du undskylde tdaugaard. Tak tpiil. Jeg prøver det i aften, hvor tpiil kommer på så han kan hjælpe mig med at teste :)
UPS...jeg kom vist aldrig igen...glemte alt om den chat (for meget arbejde) Men tdaugaard du skal have mange tak for hjælpen, selv om det ikke helt lykkedes, men har ikke rigtig tid til det lige nu...
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.