Avatar billede nythjem Nybegynder
24. juli 2003 - 15:52 Der er 2 kommentarer og
1 løsning

Kontroller om post findes i tabel?

Hej Alle!

Håber I alle nyder sommeren :)

Jeg sidder og nørkler med et password script, som jeg ikke kan få til at fungere. Jeg skal have lave en funktion, der enkelt kontrollerer om en post findes i databasen i forvejen. Hvis den gør, skal brugeren sendes videre, hvis ikke få en fejl meddelelse.

Jeg har kigget på dette login script, men kan ikke få det til at virke. Og jeg er ikke superdygtig til asp, så det må meget gerne være med fuldt eksempel :)

Understående script har jeg pillet ved.

<%
' 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("VA"),"'",""))

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

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

        ' Opbygning af SQL streng
        strSQL = "SELECT ID FROM PayCode"&_
            " WHERE (va = '" & strUID & "')"&_

        Set rs = myConn.Execute(strSQL)
        If Not (rs.BOF Or rs.EOF) Then
            ' Hvis brugeren fandtes i databasen
            intUID = rs("ID")
        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("ID") = intUID
            Response.Redirect("videre.asp")
        End If
    Else
        ' Hvis der ikke var angivet va
        strErr = "Ikke godkendt"
    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="login.asp">
  <p><img border="0" src="../gfx/logo.jpg"></p><%=strErr%>
  <table border="0" width="242">
    <tr>
      <td width="109"><font face="Verdana" style="font-size: 8pt">Va:</font></td>
      <td width="143">
      <input type="text" name="VA" size="22" style="font-family: Verdana; font-size: 8pt"> </td>
    </tr>
  </table>
  <p>
  <input type="submit" value="Login" name="Action" style="font-family: Verdana; font-size: 8pt; font-weight: bold"></p>
</form>
</body></html>
Avatar billede eagleeye Praktikant
24. juli 2003 - 17:12 #1
Prøv lige at rette disse to linjer:

        ' Opbygning af SQL streng
        strSQL = "SELECT ID FROM PayCode"&_
            " WHERE (va = '" & strUID & "')"&_


Til dette uden &_ tilsidst i sidste linje da den ikke forstættter på næste sådan her:

        ' Opbygning af SQL streng
        strSQL = "SELECT ID FROM PayCode"&_
            " WHERE (va = '" & strUID & "')"
Avatar billede eagleeye Praktikant
24. juli 2003 - 17:19 #2
Den vil ikke lave en redirect, jeg har lige hurtigt testet det. Der er et usynligt tegn som gør den ikke laver Redirect, jeg har prøvet at slette alle mellemrum fra Response.Redirect og bagud til linjen oven over og lave returnet igen så virkede det.

Prøv at copy/paste dette kode ind i notepad og så videre ind i din ASP editor.


<%
' 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("VA"),"'",""))

    ' Hvis der er skrevet noget i både brugernavn og adgangskode
    If Len(strUID) > 0 Then
        ' DSNLess forbindelse til databasen
        Set myConn = Server.CreateObject("ADODB.Connection")
        myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb")

        ' Opbygning af SQL streng
        strSQL = "SELECT ID FROM PayCode"&_
            " WHERE (va = '" & strUID & "')"

        Set rs = myConn.Execute(strSQL)
        If Not (rs.BOF Or rs.EOF) Then
            ' Hvis brugeren fandtes i databasen
            intUID = rs("ID")
        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) > 0 Then
            ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre
            Session("ID") = intUID
            Response.Redirect("videre.asp")
        End IF
    Else
        ' Hvis der ikke var angivet va
        strErr = "Ikke godkendt"
    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="login.asp">
  <p><img border="0" src="../gfx/logo.jpg"></p><%=strErr%>
  <table border="0" width="242">
    <tr>
      <td width="109"><font face="Verdana" style="font-size: 8pt">Va:</font></td>
      <td width="143">
      <input type="text" name="VA" size="22" style="font-family: Verdana; font-size: 8pt"> </td>
    </tr>
  </table>
  <p>
  <input type="submit" value="Login" name="Action" style="font-family: Verdana; font-size: 8pt; font-weight: bold"></p>
</form>
</body></html>
Avatar billede nythjem Nybegynder
24. juli 2003 - 17:20 #3
Hej Eagleeye!

Det var så sandelig lige det, der skulle til. Jeg siger tusinde tak for hjælpen :)

Håber du får en rigtig god aften!

Mvh

Michael :)
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