Avatar billede Jman Praktikant
19. august 2002 - 23:11 Der er 5 kommentarer og
2 løsninger

Hvad gør jeg galt her (sessions)

<%
If Request.Form("Action") = "Login" Then
    strUID = Trim(Replace(Request.Form("Brugernavn"),"'",""))
    strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))

    If Len(strUID) > 0 And Len(strPWD) > 0 Then

        Set myConn = Server.CreateObject("ADODB.Connection")
        myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("./DB/esupport.mdb")

        strSQL = "SELECT * FROM Users WHERE (Username = '" & strUID & "') AND (Password = '" & strPWD & "')"

        Set rs = myConn.Execute(strSQL)
        If Not (rs.BOF Or rs.EOF) Then
            intUID = rs("Username")
        Else
            strERR = "<h2><font color='#FF0000'><b>Du blev ikke godkendt af systemet..</b></font></h2><h4>Hvis du mener dette er en fejl bedes du kontakte Administrator</h4>"
        End If

        myConn.Close
        Set myConn = Nothing

        If Len(intUID) Then
            Session("Username") = intUID
%>
<%
        Set myConn = Server.CreateObject("ADODB.Connection")
        myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("./DB/esupport.mdb")

        strSQL = "SELECT * FROM Users WHERE (Username = '" & Session("username") & "')"
        if Admin = True then
        Session("username") = "Admin"
        else
        if
        if Supporter = True then
        Session("username") = "supporter"
        else
        Session("username") = "user"
        end if
       
        myConn.Close
        Set myConn = Nothing
%>
<%           
            Response.Redirect("default.asp")
        End If
    Else
        strErr = "<h2><font color='#FF0000'><b>Du skal skrive både brugernavn og adgangskode</b></font></h2>"
    End If

    If Len(strErr) > 0 Then
        strErr = "<p><font color=red>" & strErr & "</font></p>"
    End If
End If

Session.Abandon
%>

--
Det, denne kode skulle gøre var at tjekke at bruger eksisterer. Hvis ja, så skal den efterfølgende tjekke på om "Admin" = True og hvis den er det skal den lave en session"Username"=Admin hvis ikke det er en admin, skal den tjekke om bruger er supporter og hvis bruger er det, skal session"username"=supporter - Hvis ingen af de to er tjekket af som true i databasen, skal den sætte session"Username"=user

Er der nogen der kan/vil rette min kode ?
Avatar billede medions Nybegynder
19. august 2002 - 23:12 #1
<%
If Request.Form("Action") = "Login" Then
    strUID = Trim(Replace(Request.Form("Brugernavn"),"'",""))
    strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))

    If Len(strUID) > 0 And Len(strPWD) > 0 Then

        Set myConn = Server.CreateObject("ADODB.Connection")
        myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("./DB/esupport.mdb")

        strSQL = "SELECT * FROM Users WHERE (Username = '" & strUID & "') AND (Password = '" & strPWD & "')"

        Set rs = myConn.Execute(strSQL)
        If Not (rs.BOF Or rs.EOF) Then
            intUID = rs("Username")
        Else
            strERR = "<h2><font color='#FF0000'><b>Du blev ikke godkendt af systemet..</b></font></h2><h4>Hvis du mener dette er en fejl bedes du kontakte Administrator</h4>"
        End If

        myConn.Close
        Set myConn = Nothing

        If Len(intUID) Then
            Session("Username") = intUID
%>
<%
        Set myConn = Server.CreateObject("ADODB.Connection")
        myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("./DB/esupport.mdb")

        strSQL = "SELECT * FROM Users WHERE (Username = '" & Session("username") & "')"
        if Admin = True then
        Session("username") = "Admin"
        else
        if
        if Supporter = True then
        Session("username") = "supporter"
        else
        Session("username") = "user"
        end if
       
        myConn.Close
        Set myConn = Nothing
%>
<%           
            Response.Redirect("default.asp")
        End If
    Else
        strErr = "<h2><font color='#FF0000'><b>Du skal skrive både brugernavn og adgangskode</b></font></h2>"
    End If

    If Len(strErr) > 0 Then
        strErr = "<p><font color=red>" & strErr & "</font></p>"
    End If
End If

'Session.Abandon
%>

Prøv nu...

//>Rune
Avatar billede medions Nybegynder
19. august 2002 - 23:13 #2
Kommer den med nogen fejl eller hvad er der egentlig galt?

//>Rune
Avatar billede Jman Praktikant
19. august 2002 - 23:16 #3
Jeg får bare en intern serverfejl :/
Avatar billede medions Nybegynder
19. august 2002 - 23:17 #4
Altså den viser ingen linje der er fejl i eller noget?

//>Rune
Avatar billede Jman Praktikant
19. august 2002 - 23:26 #5
nope - men det er vist ligemeget - for jeg skulle egentlig bruge session-navnet til at sortere opgaver ... det havde jeg lige glemt :o¤
Så jeg må gå en anden vej rundt om problemet - vi deler point, som tak for din hjælpevilje
Avatar billede coltau Juniormester
19. august 2002 - 23:27 #6
Prøv at fjerne denne linie: (if)

        if Admin = True then
        Session("username") = "Admin"
        else
        if ' DENNE IF SKAL VÆK !
        if Supporter = True then


Ellers så ser det ud til at du henter brugeroplysningerne fra databasen 2 gange - men det er måske fordi vi ikke ser alt koden. ?
Avatar billede medions Nybegynder
19. august 2002 - 23:31 #7
Fair nok!
Thx 4 Poinz

//>Rune
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