11. februar 2007 - 12:38Der er
5 kommentarer og 1 løsning
Kan I finde fejlen?
Jeg giver op. Kan I finde fejlen?
Dette er mit script. En asp-kode, der skal genkende en indtastet mailadresse med en liste af mailadresser i en fil.
Dette er filen med mail-adresser. En txt-fil. ------------ bruger@mail.dk|kode|Brugernavn|Navn| user@mail.dk|password|User|User| testbruger@mail.dk|test|Testbruger|Bruger| -----------
Dette er scriptet: (includen skulle være fejlfri) ----------- <!--#include virtual="/includes/fso_include.asp"-->
<%
' får oplysningerne fra en anden side dim mail, kode
mail = lcase(request.form("txtMail")) kode = lcase(request.form("txtKode"))
' Disse to linjer er for at kunne teste scriptet, dvs. at det ikke er permanent mail = "user@mail.dk" kode = "password"
' Brugerlisten indeholder en liste over brugerne Indhold = OpenFile("brugerliste.txt") antal = cdbl(OpenFile("brugerantal.txt"))
nyt = split(Indhold, "|")
dim fundet fundet = 0
' Søger efter en lignende mailadresse for n = 1 to antal konkretmail = lcase(nyt((n*4)-4)) konkretmail = replace(konkretmail, " ", "")
if konkretmail = mail then fundet = n end if next
if fundet =0 then response.write "mailadressen var ikke fundet!" else
' Tjekker kodeord if nyt((cdbl(fundet)*4)-3) = kode then response.write "kodeord korrekt" else response.write "Forkert kodeord" end if
end if %> ----------
Problemet er, at koden IKKE genkender mail-adressen, selvom den burde.
Er der linieskift i din brugerantal.txt? Hvis ja, så kunne du med fordel benytte dette som separator for at få en linieorienteret datamængde at arbejde på og så for hver linie arbejde med pipe-separeret (|) data. Jeg tror det ville være mere intuitivt (specielt ifht. indekseringen)...
set fso = Server.CreateObject("Scripting.FileSystemObject") set f = fso.OpenTextStream("brugerantal.txt") indhold = f.ReadAll() f.close set f = nothing set fso = nothing
lines = split(indhold, vbCrLf)
kodeordkorrekt = false
for ln = 0 to ubound(lines) fields = split(lines(ln), "|") if lcase(fields(0)) = lcase(email) then kodeordkorrekt = fields(1) = kodeord exit for end if next
Sorry, det hedder OpenTextFile og ikke OpenTextStream - my bad :(
set fso = Server.CreateObject("Scripting.FileSystemObject") set f = fso.OpenTextFile("brugerantal.txt") indhold = f.ReadAll() f.close set f = nothing set fso = nothing
lines = split(indhold, vbCrLf)
kodeordkorrekt = false
for ln = 0 to ubound(lines) fields = split(lines(ln), "|") if lcase(fields(0)) = lcase(email) then kodeordkorrekt = fields(1) = kodeord exit for end if next
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.