Avatar billede Six Nybegynder
18. februar 2003 - 06:39 Der er 22 kommentarer og
3 løsninger

Fejl når jeg adder brugere

Hej..

Jeg har lige et spørgsmål...

hvordan kan det være jeg får:
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

når jeg prøver at logge ind med én bruger, men det virker fint når jeg bruger et andet login og pass..

jeg har prøvet at lave min login tabel med oplysninger om brugere forefra.

med samme resultat.

der er 9 brugere i alt og de 7 af dem virker.. de to sidste virker ikke. dvs. de er ikke de sidste i tabellen.

jeg har absolut ingen anelse :/
Avatar billede Six Nybegynder
18. februar 2003 - 06:40 #1
hov. sig til hvis i skal bruge noget kode..
Avatar billede dk_akj Nybegynder
18. februar 2003 - 07:10 #2
Jeg vil da gerne se lidt kode, så skal jeg nok hjælpe.

//akj
Avatar billede mjall0w Nybegynder
18. februar 2003 - 07:55 #3
Ja tak ville være meget rart, så kan jeg også lige se om jeg kan løse problemet :)

/Mjall0w-
Avatar billede justdoit Nybegynder
18. februar 2003 - 10:37 #4
Kode - det ville da være nice!
Avatar billede Six Nybegynder
18. februar 2003 - 13:45 #5
ja ok. kode. :) der er meget.. but here goes

Den giver mig fejlen i linie 50, som er den der hedder Session("UserID") = Rs("id")


<%
    ' Skal *altid* stå i STARTEN af scriptet.
    Server.ScriptTimeout = 60 * 10
    Response.Buffer = True

    ' Function til at fixe SQL's mode "SQL hacks"
    ' Istedet for at skrive Replace(.., "'", "'") 700 gange kan du nøjes med:
    ' FixSQL(variabel)
    Function FixSQL(strSQL)
        FixSQL = Trim(Replace(strSQL, "'", "''"))
    End Function

    ' Sæt reference til Connection objektet
    Set Conn = Server.CreateObject("ADODB.Connection")
    ' Åben database forbindelse. Den bruges på HELE siden, så den skal *ikke* lukkes før til aaaaaller sidst i scriptet
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("data/multi.mdb")

    ' Gem "mode", kun små bogstaver, i strMode
    strMode = LCase(Request.Querystring("mode"))

    ' Hvis man klikker rundt på siden og klikker admin, og er logget ind, så får man vist "Muligheder" istedet for.
    If strMode = "admin" And Session("LoggedIn") = True Then strMode = "loggedin"

    ' Hvis "mode" er nogle af admin funktioner, men man ikke er logget ind, så sæt strMode til "admin"
    If strMode = "loggedin" Or strMode = "upload" Or strMode = "muligheder" Then
        If Not Session("LoggedIn") = True Then strMode = "admin"
    ' Hvis der blev logget ud ..
    ElseIf strMode = "logout" Then
        Session.Abandon
        Response.redirect "index.asp?mode=admin"
    End If

    ' Hvis formen var submitted (POST'ed) ...
    ' *********************************************
    ' Admin login procedure & Fil upload
    ' *********************************************
    If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
        ' Hvis der bliver forsøgt at logge ind ..
        If strMode = "login" Then
            strBrugernavn = FixSQL(Request.Form("brugernavn"))
            strPassword = FixSQL(Request.Form("adgangskode"))

            Set Rs = Conn.Execute("SELECT brugernavn, adgangskode, id FROM login WHERE brugernavn='" & strBrugernavn & "' AND adgangskode='" & strPassword & "'")
            ' Hvis brugernavnet og koden er ok så luk pomfritten ind.
            If Not Rs.BOF Then
                Session("brugernavn") = Rs("brugernavn")
                Session("adgangskode") = Rs("adgangskode")
                Session("loggedin") = True
            Set Rs = Conn.Execute("SELECT id From members Where nick='" & Session("Brugernavn") & "'")
                Session("UserID") = Rs("id")
                Response.Redirect "index.asp?mode=loggedin"
            'Ellers kan han jo bare fedte af!
            Else
                Response.redirect "index.asp?mode=adminfejl"
            End If

        ' Hvis der bliver forsøgt at uploade filer
        '***************************************
        ' Fil upload
        '***************************************
        ElseIf strMode = "upload" Then
            ' Upload filer
            Set Upload = Server.CreateObject("Persits.Upload.1")
            Count = Upload.SaveVirtual("dlz/")

            ' Gennemløb filerne en for en, så de kan gemmes i DB'en
            For Each File In Upload.Files
                ' Kun filnavnet
                strFilename = Right(File.path, Len(File.path) - InStrRev(File.Path, "\"))

                ' Gem filnavne til senere udskrivning
                strFilenavne = strFilnavne & "File: " & strFilename & "<br>"
                ' Indsæt i DB
                'Conn.Execute "INSERT INTO filer (filnavn) VALUES ('" & FixSQL(strFilename) & "')"
                Mydate = cDate(date)
                dd = day(mydate)
                mm = month(mydate)
                yy = year(mydate)
                MydateFin = dd & "/" & mm & "/" & yy
                sql = "Insert Into filer(filnavn, beskrivelse, navn, dato) Values('"
                sql = sql & FixSQL(strFilename) & "','"
                  sql = sql & fixSQL(Upload.form("beskrivelse")) & "','"
                  sql = sql & fixSQL(Upload.form("navn")) & "','"
                  sql = sql & MydateFin & "')"   
                Conn.Execute(sql)
            Next
            ElseIf strMode = "uploaddemo" Then
                    ' Upload filer
                    Set Upload = Server.CreateObject("Persits.Upload.1")
                    Count = Upload.SaveVirtual("demo/")
                      ' Gennemløb filerne en for en, så de kan gemmes i DB'en
                    For Each File In Upload.Files
                    ' Kun filnavnet
                    strFilename = Right(File.path, Len(File.path) - InStrRev(File.Path, "\"))
                    ' Gem filnavne til senere udskrivning
                    strFilenavne = strFilnavne & "File: " & strFilename & "<br>"
                    ' Indsæt i DB
                    Mydate = cDate(date)
                dd = day(mydate)
                mm = month(mydate)
                yy = year(mydate)
                MydateFin = dd & "/" & mm & "/" & yy
                    sql = "Insert Into demo(filnavn, beskrivelse, navn, dato) Values('"
                sql = sql & FixSQL(strFilename) & "','"
                  sql = sql & fixSQL(Upload.form("beskrivelse")) & "','"
                  sql = sql & fixSQL(Upload.form("navn")) & "','"
                  sql = sql & Mydatefin & "')"   
                Conn.Execute(sql)
            Next
            ElseIf strMode = "uploadpic" Then
                    ' Upload filer
                    Set Upload = Server.CreateObject("Persits.Upload.1")
                    Count = Upload.SaveVirtual("gallery/")
                      ' Gennemløb filerne en for en, så de kan gemmes i DB'en
                    For Each File In Upload.Files
                    ' Kun filnavnet
                    strFilename = Right(File.path, Len(File.path) - InStrRev(File.Path, "\"))
                    ' Gem filnavne til senere udskrivning
                    strFilenavne = strFilnavne & "File: " & strFilename & "<br>"
                    ' Indsæt i DB
                    Mydate = cDate(date)
                dd = day(mydate)
                mm = month(mydate)
                yy = year(mydate)
                MydateFin = dd & "/" & mm & "/" & yy
                    sql = "Insert Into gallery(picnavn, beskrivelse, navn, dato) Values('"
                sql = sql & FixSQL(strFilename) & "','"
                  sql = sql & fixSQL(Upload.form("beskrivelse")) & "','"
                  sql = sql & fixSQL(Upload.form("navn")) & "','"
                  sql = sql & Mydatefin & "')"   
                Conn.Execute(sql)
                Next
        End If
    End If
%>
Avatar billede dk_akj Nybegynder
18. februar 2003 - 13:53 #6
Du får fejlen fordi der ikke er nogen rækker i dit RS.

Findes de brugere der fejler i tabellen members ??

//akj
Avatar billede the_bma_man Nybegynder
18. februar 2003 - 13:56 #7
Prøv lige t udskrive session("brugerid") inden du laver dit select.
Den er garanteret noget andet, end det du forventer - og derfor går dit select-statement galt - eller finder i hvert fald ikke nogen records.

Når du løber i en sådan fejl, så check altid hvad der står i variabler, som bruges i where-clausen. Det er 99 af 100 gange her, fejlen ligger.
Avatar billede Six Nybegynder
18. februar 2003 - 13:57 #8
ja de findes både i tabellen members og tabellen med login infos
Avatar billede mjall0w Nybegynder
18. februar 2003 - 13:58 #9
Hvis du alligevel ska Uploade Brugeren så prøv at fjern det, for den giver jo alligevel en autonummering i ID Feltet hvis du har sat den til det..

/Mjall0w-
Avatar billede Six Nybegynder
18. februar 2003 - 13:59 #10
the_bma_man: Jeg kan ikke få lov at lave en response.write på min session, jeg får bare samme fejl :/
Avatar billede mjall0w Nybegynder
18. februar 2003 - 14:02 #11
Nej det er også mig der tager fejl af det for det er jo ikke der hvor du Henter data til din DB

/Mjall0w-
Avatar billede Six Nybegynder
18. februar 2003 - 14:05 #12
jeg må bare melde pas, jeg kan intet logik finde i det..

jeg gør det samme ved 9 brugere, men 2 af dem vil bare ikke fungere.. om så jeg skifter plads på dem..
Avatar billede dk_akj Nybegynder
18. februar 2003 - 14:06 #13
Prøv lige at se om det er fordi der er forskel på store / små bogstaver.


Set Rs = Conn.Execute("SELECT id From members Where lcase(nick)='" & lcase(Session("brugernavn")) & "'")
Avatar billede Six Nybegynder
18. februar 2003 - 14:08 #14
det var det ikke, får samme fejl :(
Avatar billede dk_akj Nybegynder
18. februar 2003 - 14:12 #15
If Not Rs.BOF Then
                Session("brugernavn") = Rs("brugernavn")
                temp = Session("brugernavn")
  response.write "Session("brugernavn") = '" & temp & "'"
                Session("adgangskode") = Rs("adgangskode")
                Session("loggedin") = True
            Set Rs = Conn.Execute("SELECT id From members Where nick='" & Session("brugernavn") & "'")
response.write "  id fra members = '" & id & "'"

' fjern midlertidigt al kode herefter.

Hvad får du så vist i browseren ??

//akj
Avatar billede Six Nybegynder
18. februar 2003 - 14:17 #16
Woohoo så fandt jeg ud af det! dk_akj kom lige med et svar så du kan få del i kagen - og mjallow også
Avatar billede Six Nybegynder
18. februar 2003 - 14:19 #17
hov kunne være, jeg skulle beskrive fejlen, så andre kan have gavn af det :)

Ganske rigtigt, mine poster i tabellen login stemte ikke overens med dem i members, hvilket jeg ellers synes jeg havde tjekket 80 gange.. men sådan er det jo når kl. bliver mange og man er frustreret.
Avatar billede dk_akj Nybegynder
18. februar 2003 - 14:22 #18
Jeps, så er det godt man har eksperten :o)

//akj
Avatar billede mjall0w Nybegynder
18. februar 2003 - 14:31 #19
Ja det er jo det som det handler om på exp :)
Avatar billede mjall0w Nybegynder
18. februar 2003 - 14:33 #20
Men det var da godt du fandt ud af det :)
Avatar billede Six Nybegynder
18. februar 2003 - 14:42 #21
mange tak for hjælpen folkens :)
Avatar billede mjall0w Nybegynder
18. februar 2003 - 14:49 #22
Så lidt.. Sku det være en anden gang ;)
Avatar billede dk_akj Nybegynder
18. februar 2003 - 14:50 #23
Tak for pts.

//akj
Avatar billede Six Nybegynder
18. februar 2003 - 14:51 #24
hehe, ja det kan MEGET nemt være :P
Avatar billede the_bma_man Nybegynder
19. februar 2003 - 14:43 #25
Jamen, takker da også for pts.
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