Skinner: Help Datenbankbefehl einbinden,

Hallo,

ich habe ein Problem, und zwar versuche ich schon seit  Tagen den Code um eine Datenbank zu öffen und die Werte daraus zu entnehmen und für eine Passwortabfrage zu verwenden. In meinen Code der Vorgibt welche Werte gefragt sind einzufügen.

Hier die beiden Code´s

1.

<%@ LANGUAGE = "VBScript" %>

<%Response.Buffer = TRUE

Eing_User = Request.Form("username")
Eing_PW = Request.Form("passwort")

set dbConnection = Server.CreateObject("ADODB.Connection")

dbConnection.open "benutzer"

SQL = "SELECT * FROM login"
SQL = SQL+ " WHERE (((login.User)= '" + Eing_user + "')"
SQL = SQL+ " AND ((login.Passwort)= '" + Eing_PW + "'))"

Liste = dbConnection.Execute(SQL)

If Not Liste.EOF And Not Liste.BOF Then  Response.Redirect(Liste("URL"))Else  Response.Redirect("wrong.html")End If

dbConnection.Close()%>

2.

<%
Option Explicit
Response.Buffer = True

Const strThisRealm = "AspHeute Secure Area"
Dim strUName, strPwd, strTargetPage
GetAuthInfo strUName, strPwd

If "" = strUName And "" = strPwd Then
  RequestAuthentication strThisRealm
  Response.End
End If

If "administrator" = strUName And "passwort" = strPwd Then
  Session("SecArea_LoginGranted") = True
  strTargetPage = Session("IntendedTarget")
  ' check: no infinite loops please!
  If ("" = strTargetPage Or _
     LCase(strTargetPage) = LCase(Request.ServerVariables("SCRIPT_NAME"))) Then
        strTargetPage = "default.asp"
  End If

Response.Redirect strTargetPage
  Response.End
Else
  RequestAuthentication strThisRealm
  Response.End
End If
%>

Und zwar möchte ich das 1. sich in 2. einfügt, damit ich nicht mehr die statischen Benutzernamen und Passwörter habe, sondern das diese nach der Eingabe von dem Benutzer über die Datenbank verglichen werden und der Benutzer nach erfolgreicher Eingabe zu den internen Seiten weitergeschleust wird.

Dies ist mir bisher nicht gelungen und ich finde auch keine Lösung auf dieses Problem, muss dazu gestehen das meine Programmierkenntnisse in diesem Bereich nicht besonders sind.

Bitte um Antwort da ich mit meinem eigenen Wissen nicht weiter komme.

Mfg
Skinner

  1. Hi,

    ich habe ein Problem, und zwar versuche ich schon seit  Tagen den Code um eine Datenbank zu öffen und die Werte daraus zu entnehmen und für eine Passwortabfrage zu verwenden. In meinen Code der Vorgibt welche Werte gefragt sind einzufügen.

    Um was für eine Datenbank geht es denn? Access?

    <%@ LANGUAGE = "VBScript" %>

    <%Response.Buffer = TRUE

    Eing_User = Request.Form("username")
    Eing_PW = Request.Form("passwort")

    set dbConnection = Server.CreateObject("ADODB.Connection")

    dbConnection.open "benutzer"

    was ist das? Eine Access-DB kannst du z.B. so öffnen:
    set dbConnection = Server.CreateObject("ADODB.Connection")
    dbConnection.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\test\test.mdb")

    SQL = "SELECT * FROM login"
    SQL = SQL+ " WHERE (((login.User)= '" + Eing_user + "')"
    SQL = SQL+ " AND ((login.Passwort)= '" + Eing_PW + "'))"

    Liste = dbConnection.Execute(SQL)

    Dann würde ich so weitermachen:
    Set rst = Server.CreateObject("ADODB.Recordset")
    SQL = "..."
    rst.Open SQL, dbConnection

    If Not rst.EOF Then
       Response.Redirect(rst("URL"))
    Else
       Response.Redirect("wrong.html")
    End If

    dbConnection.Close()%>

    Ich hoffe, das hilft dir erstmal!

    Gruß
    Stefan

    1. Ja es ist eine Access Datenbank, da liegst Du vollkommen richtig.

      Zu dem weiteren Code danke ersteinmal, aber besteht von Deiner Seite die Möglichkeit den Datenbank Code in meinen 2 Code einzubinden???

      Mfg
      Skinner

      Hi,

      ich habe ein Problem, und zwar versuche ich schon seit  Tagen den Code um eine Datenbank zu öffen und die Werte daraus zu entnehmen und für eine Passwortabfrage zu verwenden. In meinen Code der Vorgibt welche Werte gefragt sind einzufügen.

      Um was für eine Datenbank geht es denn? Access?

      <%@ LANGUAGE = "VBScript" %>

      <%Response.Buffer = TRUE

      Eing_User = Request.Form("username")
      Eing_PW = Request.Form("passwort")

      set dbConnection = Server.CreateObject("ADODB.Connection")

      dbConnection.open "benutzer"

      was ist das? Eine Access-DB kannst du z.B. so öffnen:
      set dbConnection = Server.CreateObject("ADODB.Connection")
      dbConnection.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\test\test.mdb")

      SQL = "SELECT * FROM login"
      SQL = SQL+ " WHERE (((login.User)= '" + Eing_user + "')"
      SQL = SQL+ " AND ((login.Passwort)= '" + Eing_PW + "'))"

      Liste = dbConnection.Execute(SQL)

      Dann würde ich so weitermachen:
      Set rst = Server.CreateObject("ADODB.Recordset")
      SQL = "..."
      rst.Open SQL, dbConnection

      If Not rst.EOF Then
         Response.Redirect(rst("URL"))
      Else
         Response.Redirect("wrong.html")
      End If

      dbConnection.Close()%>

      Ich hoffe, das hilft dir erstmal!

      Gruß
      Stefan

      1. Hi,

        Zu dem weiteren Code danke ersteinmal, aber besteht von Deiner Seite die Möglichkeit den Datenbank Code in meinen 2 Code einzubinden???

        eventuell schon, allerdings müsste ich genauer wissen, was du eigentlich machen willst. Ich fasse mal zusammen, was ich soweit verstanden habe:

        Du hast eine Access-DB mit einer Tabelle Login.
        Darin befinden sich Benutzername, Passwort, URL.

        Es gibt eine HTML-Formular, in dem der Benutzer Benutzername und Passwort einträgt und abschickt.

        Mittels VB-Script vergleichst du die Einträge im Formular mit der den Einträgen in der DB.

        Wenn der Eintrag gefunden wird, wird der Benutzer zur entsprechenden URL weitergeleitet, falls nicht, wird die Seite wrong.html aufgerufen.

        Soweit funktioniert wohl Teil 1. Was soll denn noch passieren?

        Damit die Seiten nicht über direkte Eingabe der URL aufgerufen werden können, kannst du eine Sessionvariable einführen, diese beim Login setzen, und diese zu Beginn der geschützten Seiten abfragen, um entsprechend zu reagieren zu können.

        Gruß
        Stefan

        1. Hallo,

          alles was Du geschrieben hast, ist richtig.

          Nur ist der Code mit der Tabelle ein Fragment einer anderen "alten" Lösung,

          bei dem Code 2. ist nur ein fester Wert gegeben (administrator/passwort),

          Anstatt der vielen Werte gegeben durch die gefüllte Tabelle die in Code 1. stehen.

          Nun möchte ich nur die Funktion von Code 1. in Code 2. einfügen, damit ich auch dort die Abgefragten Information aus dem Login- Bildschirm benutzen kann, es handelt sich dabei allerdings nicht um ein Formular sondern um ein IIS Benutzer/Passwort Screen (wie bei einer Netzwerkanmeldung).

          Bekomme dieses aber nicht wirklich gebacken.

          Bitte nicht verzweifeln, das bin ich schon :)

          Mfg
          Skinner

          Soweit funktioniert wohl Teil 1. Was soll denn noch passieren?

          Damit die Seiten nicht über direkte Eingabe der URL aufgerufen werden können, kannst du eine Sessionvariable einführen, diese beim Login setzen, und diese zu Beginn der geschützten Seiten abfragen, um entsprechend zu reagieren zu können.

          Gruß
          Stefan

          1. Hi,

            Nun möchte ich nur die Funktion von Code 1. in Code 2. einfügen, damit ich auch dort die Abgefragten Information aus dem Login- Bildschirm benutzen kann, es handelt sich dabei allerdings nicht um ein Formular sondern um ein IIS Benutzer/Passwort Screen (wie bei einer Netzwerkanmeldung).

            ich versuch es mal, allerdings ist einiges geraten.
            Probier folgenden Code mal aus:

            <%
            Option Explicit
            Response.Buffer = True

            Const strThisRealm = "AspHeute Secure Area"
            Dim strUName, strPwd, strTargetPage
            GetAuthInfo strUName, strPwd

            set dbConnection = Server.CreateObject("ADODB.Connection")
            dbConnection.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\test\test.mdb")

            SQL = "SELECT * FROM login " & _
                  "WHERE User = '" & strUName & "' AND " & _
                  "      Passwort = '" & strPwd & "'"

            Set rst = Server.CreateObject("ADODB.Recordset")
            rst.Open SQL, dbConnection

            If Not rst.EOF Then
              Session("SecArea_LoginGranted") = True
              Session("IntendedTarget") = rst("URL")
              strTargetPage = Session("IntendedTarget")
              ' check: no infinite loops please!
              If ("" = strTargetPage Or _
                 LCase(strTargetPage) = LCase(Request.ServerVariables("SCRIPT_NAME"))) Then
                    strTargetPage = "default.asp"
              End If
              Response.Redirect strTargetPage
              Response.End
            Else
              strTargetPage = "wrong.html"
              Response.Redirect strTargetPage
              Response.End
            End If
            %>

            Gruß
            Stefan

            1. Hi,

              nach verwenden des Code´s erhalte ich folgende Fehlermeldung.

              Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
              Syntaxfehler
              /iisHelp/common/500-100.asp, line 160
              elseIf (objASPError.Description > "") Then
              ^
              Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
              Variable ist nicht definiert: 'GetAuthInfo'
              /login/login.asp, line 8

              was kann das sein???

              Mfg
              Skinner

              Hi,

              Nun möchte ich nur die Funktion von Code 1. in Code 2. einfügen, damit ich auch dort die Abgefragten Information aus dem Login- Bildschirm benutzen kann, es handelt sich dabei allerdings nicht um ein Formular sondern um ein IIS Benutzer/Passwort Screen (wie bei einer Netzwerkanmeldung).

              ich versuch es mal, allerdings ist einiges geraten.
              Probier folgenden Code mal aus:

              <%
              Option Explicit
              Response.Buffer = True

              Const strThisRealm = "AspHeute Secure Area"
              Dim strUName, strPwd, strTargetPage
              GetAuthInfo strUName, strPwd

              set dbConnection = Server.CreateObject("ADODB.Connection")
              dbConnection.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\test\test.mdb")

              SQL = "SELECT * FROM login " & _
                    "WHERE User = '" & strUName & "' AND " & _
                    "      Passwort = '" & strPwd & "'"

              Set rst = Server.CreateObject("ADODB.Recordset")
              rst.Open SQL, dbConnection

              If Not rst.EOF Then
                Session("SecArea_LoginGranted") = True
                Session("IntendedTarget") = rst("URL")
                strTargetPage = Session("IntendedTarget")
                ' check: no infinite loops please!
                If ("" = strTargetPage Or _
                   LCase(strTargetPage) = LCase(Request.ServerVariables("SCRIPT_NAME"))) Then
                      strTargetPage = "default.asp"
                End If
                Response.Redirect strTargetPage
                Response.End
              Else
                strTargetPage = "wrong.html"
                Response.Redirect strTargetPage
                Response.End
              End If
              %>

              Gruß
              Stefan

              1. Hi

                nach verwenden des Code´s erhalte ich folgende Fehlermeldung.

                Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
                Syntaxfehler
                /iisHelp/common/500-100.asp, line 160
                elseIf (objASPError.Description > "") Then
                ^
                Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
                Variable ist nicht definiert: 'GetAuthInfo'
                /login/login.asp, line 8

                was kann das sein???

                GetAuthInfo ist eine Funktion, die irgendwo in deinem Script definiert sein müsste.

                Wenn  nicht ersetze mal die Zeile
                GetAuthInfo strUName, strPwd
                durch
                strUName = Request.ServerVariables("AUTH_USER")
                strPwd = Request.ServerVariables("AUTH_PASSWORD")

                Hast du das Script Teil 2 schon mal korrekt zum Laufen gebracht?

                Gruß
                Stefan

                1. Hi,

                  ja beide Skripte sind selbständig am Laufen.

                  Mfg
                  Skinner

                  Hi

                  nach verwenden des Code´s erhalte ich folgende Fehlermeldung.

                  Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
                  Syntaxfehler
                  /iisHelp/common/500-100.asp, line 160
                  elseIf (objASPError.Description > "") Then
                  ^
                  Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
                  Variable ist nicht definiert: 'GetAuthInfo'
                  /login/login.asp, line 8

                  was kann das sein???

                  GetAuthInfo ist eine Funktion, die irgendwo in deinem Script definiert sein müsste.

                  Wenn  nicht ersetze mal die Zeile
                  GetAuthInfo strUName, strPwd
                  durch
                  strUName = Request.ServerVariables("AUTH_USER")
                  strPwd = Request.ServerVariables("AUTH_PASSWORD")

                  Hast du das Script Teil 2 schon mal korrekt zum Laufen gebracht?

                  Gruß
                  Stefan

                  1. Nachdem ich GetAuthInfo gegen die Zeilen ausgetauscht habe, bekomm ich die Fehlermeldung:

                    Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'

                    Syntaxfehler

                    /iisHelp/common/500-100.asp, line 160

                    elseIf (objASPError.Description > "") Then
                    ^
                    Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'

                    Variable ist nicht definiert: 'dbConnection'

                    /login/login.asp, line 11

                    was kann nun passiert sein???

                    Mfg
                    Skinner

                    Hi,

                    ja beide Skripte sind selbständig am Laufen.

                    Mfg
                    Skinner

                    Hi

                    nach verwenden des Code´s erhalte ich folgende Fehlermeldung.

                    Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
                    Syntaxfehler
                    /iisHelp/common/500-100.asp, line 160
                    elseIf (objASPError.Description > "") Then
                    ^
                    Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
                    Variable ist nicht definiert: 'GetAuthInfo'
                    /login/login.asp, line 8

                    was kann das sein???

                    GetAuthInfo ist eine Funktion, die irgendwo in deinem Script definiert sein müsste.

                    Wenn  nicht ersetze mal die Zeile
                    GetAuthInfo strUName, strPwd
                    durch
                    strUName = Request.ServerVariables("AUTH_USER")
                    strPwd = Request.ServerVariables("AUTH_PASSWORD")

                    Hast du das Script Teil 2 schon mal korrekt zum Laufen gebracht?

                    Gruß
                    Stefan

                    1. Guten Morgen,

                      Nachdem ich GetAuthInfo gegen die Zeilen ausgetauscht habe, bekomm ich die Fehlermeldung:

                      Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'

                      Syntaxfehler

                      /iisHelp/common/500-100.asp, line 160

                      elseIf (objASPError.Description > "") Then
                      ^
                      Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'

                      Variable ist nicht definiert: 'dbConnection'

                      /login/login.asp, line 11

                      was kann nun passiert sein???

                      Wir haben keine Variablen deklariert, obwohl da im Script Option Explicit drüber steht. Schmeiss Option Explicit mal raus;-)

                      Gruß
                      Stefan

                      1. Jo Guten Morgen,

                        hab es nun, :)

                        nur hab ich jetzt das Problem, das wenn ich eine Seite habe die angesurft wird, wo ich durch ein Include überprüfe ob der User sich angemeldet hat,

                        dieser dann auf die Login- Seite geleitet wird, er sich anmeldet und nach der Eingabe eigentlich auf die Url geschoben werden soll, die für Ihn wichtig ist,

                        diese natürlich auch abgesichert ist, wird er wieder auf das Login geschoben, wie geb ich dem Code nun bekannt das das Login bereits "True" war und kein weiteres Login notwendig ist????

                        Mfg
                        Skinner

                        Ps. Stefan Du bist mir eine große Hilfe danke ;-)

                        Guten Morgen,

                        Nachdem ich GetAuthInfo gegen die Zeilen ausgetauscht habe, bekomm ich die Fehlermeldung:

                        Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'

                        Syntaxfehler

                        /iisHelp/common/500-100.asp, line 160

                        elseIf (objASPError.Description > "") Then
                        ^
                        Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'

                        Variable ist nicht definiert: 'dbConnection'

                        /login/login.asp, line 11

                        was kann nun passiert sein???

                        Wir haben keine Variablen deklariert, obwohl da im Script Option Explicit drüber steht. Schmeiss Option Explicit mal raus;-)

                        Gruß
                        Stefan

                        1. Hi,

                          hab es nun, :)

                          es läuft, cool!

                          nur hab ich jetzt das Problem, das wenn ich eine Seite habe die angesurft wird, wo ich durch ein Include überprüfe ob der User sich angemeldet hat,

                          dieser dann auf die Login- Seite geleitet wird, er sich anmeldet und nach der Eingabe eigentlich auf die Url geschoben werden soll, die für Ihn wichtig ist,

                          diese natürlich auch abgesichert ist, wird er wieder auf das Login geschoben, wie geb ich dem Code nun bekannt das das Login bereits "True" war und kein weiteres Login notwendig ist????

                          Verwende eine Sessionvariable und frage diese in deinem include ab. Soweit ich mich erinnere, wird doch bereits eine benutzt:
                          Session("SecArea_LoginGranted")
                          Wie ich das verstanden habe ist sie true, wenn das login erfolgreich war, andernfalls false.

                          Sessionvariablen legst du im übrigen in der global.asa fest.

                          Grüße
                          Stefan