Avatar billede kantoraza Nybegynder
11. februar 2007 - 12:38 Der 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.

Mvh. Rasmus
Avatar billede softspot Forsker
11. februar 2007 - 12:48 #1
Hvad returnerer funktionen OpenFile?

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)...
Avatar billede softspot Forsker
11. februar 2007 - 12:55 #2
Eksempel:

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
Avatar billede softspot Forsker
11. februar 2007 - 13:00 #3
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
Avatar billede kantoraza Nybegynder
11. februar 2007 - 20:33 #4
genialt.. Det virker!
Avatar billede softspot Forsker
11. februar 2007 - 21:51 #5
Jamen, så må jeg vel hellere smide et svar :)
Avatar billede softspot Forsker
19. februar 2007 - 22:07 #6
Tak for point :)
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