Avatar billede jpj3 Nybegynder
15. december 2003 - 15:32 Der er 9 kommentarer og
1 løsning

Forskellige brugernavn til forskellige sider.

Jeg har følgende kode.
Hvor jeg gerne vil have sat følgende ind i .

if session("admin")="true" then
response.redirect("admin.asp")
end if

Brugernavn og password er admin, når de er tastet ind, skal siden admin.asp vises.
Når anden bruger taster skal de til index.asp.

<%
' Hvis der er blevet trykket på knappen "Login"
If Request.Form("Action") = "Login" Then
    ' Her forberedes de indtastede værdier til validering
    strUID = Trim(Replace(Request.Form("Brugernavn"),"'",""))
    strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))

    ' Hvis der er skrevet noget i både brugernavn og adgangskode
    If Len(strUID) > 0 And Len(strPWD) > 0 Then

        ' DSNLess forbindelse til databasen
        Set myConn = Server.CreateObject("ADODB.Connection")
               
        myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../fpdb/userlist.mdb")


        ' Opbygning af SQL streng
        strSQL = "SELECT * FROM Users"&_
            " WHERE (Username = '" & strUID & "')"&_
            " AND (Pass = '" & strPWD & "')" &_
            " AND parked=false"
           
        Set rs = myConn.Execute(strSQL)
        If Not (rs.BOF Or rs.EOF) Then
            ' Hvis brugeren fandtes i databasen
            intUID = rs("uid")
        Else
            ' Hvis brugeren ikke fandtes i databasen
            strERR = "Du blev ikke godkendt af systemet"
        End If
       
        ' Rydder op i vores connection objekt
        myConn.Close
        Set myConn = Nothing

        If Len(intUID) Then
        ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre
        Session("uid") = 1
        Response.Redirect("/server/folder/index.asp")
        'session("admin") = 1
           
            'response.redirect(request.servervariables("script_name"))
        End If
       
    Else
        ' Hvis der ikke var angivet brugernavn og adgangskode
        strErr = "Du skal skrive både brugernavn og adgangskode"
    End If

    If Len(strErr) > 0 Then
        ' Her laves fejlmeddelsen om til rød skrift
        strErr = "<p><font color=red>" & strErr & "</font></p>"
    End If
End If
%>
<html><head>
<title>Login script</title>
</head><body>
<form method="POST" action="log.asp">
  <p><font size="4">Angiv brugernavn og adgangskode</font></p><%=strErr%>
  <table border="0">
    <tr>
      <td width="50%">Brugernavn:</td>
      <td width="50%"><input type="text" name="Brugernavn" size="20">
      </td>
    </tr>
    <tr>
      <td width="50%">Adgangskode:</td>
      <td width="50%"><input type="password" name="Adgangskode" size="20">
      </td>
    </tr>
  </table>
  <p><input type="submit" value="Login" name="Action"></p>
</form>
</body></html>
Avatar billede mufoxe Nybegynder
15. december 2003 - 15:36 #1
Dette Response.Redirect("/server/folder/index.asp") skiftes ud med

If Request.Form("Brugernavn") = "admin" Then
  Response.Redirect("admin.asp")
Else
  Response.Redirect("/server/folder/index.asp")
End If
Avatar billede jpj3 Nybegynder
15. december 2003 - 15:43 #2
Så langt så godt, det virker.
Kan du putte denne linie ind også

session("level")=rs("level")

Der er forskellige level på brugerne.
Jeg kan komme til admin.asp men ikke ind der mangler lige det rigtige level
Avatar billede mufoxe Nybegynder
15. december 2003 - 15:44 #3
Den indsætter du bare lige får If Request.Form("Brugernavn") = "admin"
Avatar billede jpj3 Nybegynder
15. december 2003 - 16:01 #4
Ikke så godt.
Kommer med følgende fejl.

ADODB.Recordset error '800a0cc1'

Unknown runtime error

login.asp, line 45
Det er denne linie.

session("level")=rs("level")
Avatar billede mufoxe Nybegynder
15. december 2003 - 16:03 #5
har du et felt, som hedder level i dit recordset?
Avatar billede jpj3 Nybegynder
15. december 2003 - 16:05 #6
ja
Avatar billede jpj3 Nybegynder
15. december 2003 - 16:08 #7
Jeg var for hurtig.

Det er dennne linie der er linie 45.

Response.Redirect("admin.asp")
Avatar billede mufoxe Nybegynder
15. december 2003 - 16:09 #8
Det var mig, der var dum. Det skal self se ud på følgende måde:
        If Not (rs.BOF Or rs.EOF) Then
            ' Hvis brugeren fandtes i databasen
            intUID = rs("uid")
            session("level")=rs("level")
        Else
            ' Hvis brugeren ikke fandtes i databasen
            strERR = "Du blev ikke godkendt af systemet"
        End If
Avatar billede mufoxe Nybegynder
15. december 2003 - 16:12 #9
Det kan umuligt være den linie. Den kan ikke producere den fejl, som du beskriver.
Avatar billede jpj3 Nybegynder
15. december 2003 - 16:12 #10
Jeg fand selv ud af det.
' Rydder op i vores connection objekt
        myConn.Close
        Set myConn = Nothing
Er rykket 5 linier ned.
Den lukker for connection før den er færdig med at bruge den.

mange tak for hjælpen.
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