Avatar billede donslund Nybegynder
09. november 2002 - 11:00 Der er 23 kommentarer og
1 løsning

fejl i asp-kode.

Jeg får denne fejl:
ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/dologin.asp, line 28
Det kan da godt være at det er en SQL-ting, men er der ikke en der kan hjælpe alligevel?
Avatar billede Slettet bruger
09. november 2002 - 11:10 #1
skal bruge lidt kode for at kunne hjælpe dig :-)
Avatar billede agony3 Nybegynder
09. november 2002 - 11:15 #2
du spørg efter et ting i dit resultset som ikke er der.
Avatar billede tzr Nybegynder
09. november 2002 - 11:17 #3
den kolonne du spørg efter eksisterer ikke
Avatar billede donslund Nybegynder
09. november 2002 - 11:21 #4
' SQL forespørgsel
strSQL = "Select * from medlemmer where brugernavn='" & brugernavn_in & "' AND password='" & password_in & "'"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)
If Request.Form("brugernavn") = rs(brugernavn) AND Request.Form("password") = rs(password) Then ...
Avatar billede tzr Nybegynder
09. november 2002 - 11:24 #5
Tabel: medlemmer
Columns: brugernavn, password

én af de tre ting eksisterer ikke
Avatar billede Slettet bruger
09. november 2002 - 11:24 #6
og du er sikker på at du har stavet det hele korrekt og med store bogstaver som er storebogstaver og omvendt ?
Avatar billede tzr Nybegynder
09. november 2002 - 11:24 #7
hvilken linie er linie 28 ?
Avatar billede hossein Nybegynder
09. november 2002 - 11:25 #8
brugernavn_in er dette navnet på tekst boksen i din form?
Men her er:
If Request.Form("brugernavn") = rs(brugernavn....
men her er If ...Form("brugernavn")... skal ikke være brugernavn_in
Avatar billede donslund Nybegynder
09. november 2002 - 11:28 #9
Hej har lige reformeret min kode og mener at min login side skal se således ud:

<%


brugernavn_in=Request.Form("brugernavn")
password_in=request.Form("password")

''''''''''''''''''' tjek om personen findes i DB


' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/database.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select * from medlemmer where brugernavn='" & brugernavn_in & "'"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

If Request.Form("password") = rs(password)  then

' Hvis korrekt sættes session til JA
  Session("login") = "JA"
  Session("brugernavn") = Request.Form("brugernavn")
  Session.Timeout = 120
  Response.Write "<p><a href='dokument.asp'>Link til beskyttet fil</a></p>"
  Response.Redirect "medindex.asp?inc=0"
    End if

Else
  ' dvs. hvis der ikke er poster med betingelsen 
    ' Hvis forkert sættes ingen session til NEJ
      Session("login") = "NEJ"
      Session.Timeout = 30
      Response.Write "<h1>Du er IKKE logget korrekt ind</h1>"
    Response.Redirect "index.asp?inc=53"
  end if



' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
end if
%>
Avatar billede donslund Nybegynder
09. november 2002 - 11:29 #10
men det giver problemer ved else
Avatar billede Slettet bruger
09. november 2002 - 11:30 #11
du harglemt at sikre dig ved at først at tjekke om forespørgslen er tom ved at state med :

if not rs.eof

'her er din tjek ¨å

end if
Avatar billede Slettet bruger
09. november 2002 - 11:32 #12
skulle have stået:

if not rs.eof then

'her er din tjek så

end if
Avatar billede tzr Nybegynder
09. november 2002 - 11:35 #13
du kan ikke Response.Redirect efter du har lavet output til klienten
Avatar billede Slettet bruger
09. november 2002 - 11:36 #14
det kan han da god, men klienten ser nok ikke så meget af det :-)
Avatar billede tzr Nybegynder
09. november 2002 - 11:38 #15
ja også det, men jeg mener bestemt jeg ALTID får smit en fejl i hovedet når jeg kommer til at gøre det
Avatar billede donslund Nybegynder
09. november 2002 - 11:39 #16
If password_in = rs(password)  then

det er denne linie den påstår:
ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/dologin.asp, line 31

Dvs. at noget må være tomt. Men jeg kan ikke finde fejlen. Jeg har dobbelt dobbelt tjekket at der er skrevet rigtigt.
Kan jeg teste det på en eller anden måde.
Avatar billede Slettet bruger
09. november 2002 - 11:40 #17
den holder ikke tzr kanman sagtens...

men angående at dit password er tom, så lave det tjek jeg bad dig om, skulle gerne forhindre dette
Avatar billede tzr Nybegynder
09. november 2002 - 11:41 #18
rs("password")

:)
Avatar billede Slettet bruger
09. november 2002 - 11:41 #19
ja det var nok en god plan tzr :-)
Avatar billede tzr Nybegynder
09. november 2002 - 11:41 #20
questis << nå ok, men det er også ligemeget :)
Avatar billede donslund Nybegynder
09. november 2002 - 11:42 #21
Jeg har sat det ind:

' SQL forespørgsel
strSQL = "Select * from medlemmer where brugernavn='" & brugernavn_in & "'"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

if not rs.eof then

If password_in = rs(password)  then

' Hvis korrekt sættes session til JA
  Session("login") = "JA"
  Session("brugerna
Avatar billede donslund Nybegynder
09. november 2002 - 11:44 #22
To små " ", at de kan gøre det.
Nu lader der til at være hul igennem.

Tak for hjælpen.
Avatar billede Slettet bruger
09. november 2002 - 11:44 #23
så ret fejlen som tzr fandt med de to " du manglede
Avatar billede tzr Nybegynder
09. november 2002 - 11:48 #24
takker 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