Avatar billede tuctoh Nybegynder
14. november 2003 - 11:54 Der er 9 kommentarer og
1 løsning

kommasepereret streng - kun én af hver

Hej,

På min side har jeg en messenger, hvor man kan sende "emails" til de forskellige brugere. Man kan indtaste flere brugere kommasepereret.

Jeg har dog et problem at folk ind imellem spammer hinanden.

Hvordan forhindrer jeg at den samme person modtager den samme meddelelse 2 gang? Det vil sige, hvis man taster "tuctoh, tuctoh, tuctoh" skal jeg kun have den én gang!


Min kode nu ser ud ala:


receivers = split(request.form("receiver"), ",")
For i = 0 to UBound(receivers)
'opret meddelelse
next

Håber i kan hjælpe med lidt kode.. jeg vil tro det skal sættes ind i et array, men er ikke helt sikker på den mest effektive metode for serveren.
Avatar billede cesil Nybegynder
14. november 2003 - 12:41 #1
receivers = split(request.form("receiver"), ",")
For i = 0 to UBound(receivers)
    if receivers(i) <> recieverstemp then
        'opret meddelelse
    end if
recieverstemp = receivers(i)
next

klarer dog ikke
tuctoh, enanden, tuctoh
Hvis du skal klarer det også ville jeg kaste skidtet i en database og selecte distinct
Avatar billede tuctoh Nybegynder
14. november 2003 - 12:46 #2
mmm som du selv siger, klarer den ikke strenge med brugere blandet... det skal den kunne klare :s
At smide det ind i en database er ikke en mulighed; der bliver sendt alt for mange beskeder til at det kan betale sig.

En mulighed er jo at lave receiverstemp om til et array, og loope igennem det hver gang, men jeg ved ikke om det er det mest rationelle.
Avatar billede deeflate Nybegynder
14. november 2003 - 14:55 #3
Måske er det lettere at bygge en streng op (med alle 'tidligere' modtagere i stedet for blot den seneste) og så søge strengen igennem. Hvis den modtager du er ved at "behandle" allerede er i strengen, så oprettes meddelelsen ikke...
Avatar billede deeflate Nybegynder
14. november 2003 - 14:57 #4
Vil tro, det gøres bedst med InStr (der er et par eksempler på InStr her: http://www.w3schools.com/vbscript/func_instr.asp)
Avatar billede tuctoh Nybegynder
14. november 2003 - 14:58 #5
hvordan ville du løbe den streng igennem og tjekke? Husk at der kunne være brugere som "dee" og "deeflate"... det skal den jo helst ikke fortolke forkert :s
Avatar billede deeflate Nybegynder
14. november 2003 - 15:02 #6
Ville nok bygge strengen op ved at tilføje et tegn på hver side af brugernavnet (#dee# #deeflate#) og så søge på "#" & receivers(i) & "#".
Avatar billede tuctoh Nybegynder
14. november 2003 - 15:14 #7
if InStr(sentto, lcase(trim(receivers(i)))) = 0 then
sentto = sentto & lcase(trim(receivers(i))) &","
'opret meddelelse
end if

virkede :)

smid lige et svar deeflate.
God idé at gøre det med instr.
Avatar billede deeflate Nybegynder
14. november 2003 - 15:18 #8
Værsågod :)
Avatar billede tuctoh Nybegynder
14. november 2003 - 15:19 #9
takker
Avatar billede deeflate Nybegynder
14. november 2003 - 15:23 #10
Det er såmend mig, der takker.
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
Kurser inden for grundlæggende programmering

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