Uwe: Benutzer und Passwort aus DB abfragen

Ich möchte eine Login-Seite gestalten, bei der ein Benutzername und ein Kennwort abgefragt werden. Diese Daten sollen in einer DB überprüft werden. Sind die Daten vorhanden so erhält man Zugang zu einer bestimmten Seite. Sind Benutzername und Kennwort nicht enthalten wird man wieder auf die Login-Seite geleitet. Wer kann mir dabei behilflich sein. Im Moment hab ich folgenden COde welcher auch funktioniert. Das Problem ist nur das die Session Daten nirgends gespeichert werden, und ich nach Abschluß einer Aktion (z.b. Aufnahme von Daten) ich erneut auf die Login-Seite geleitet werde.

Bitte gebt mir ein paar Tips, wenn möglich detailiert.

  1. Ich möchte eine Login-Seite gestalten, bei der ein Benutzername und ein Kennwort abgefragt werden.

    Hi

    probiers mal hiermit:

    http://www.f078.net/php/tutorial/php/php_140902.php

    Hab ich auf manchen meiner Seiten mit Erfolg eingesetzt. Echt gut.

    Gruß

    MO

    1. Hi, hallo

      sehr weiser Rat ... er hat sicher ASP als Topic gewählt, wenn er mit PHP arbeiten will. Wer lesen kann ist klar im Vorteil.

      Zu Uwe:

      was meinst du mit "folgenden Code" ?

      Evt. ist bei deiner Website der Session-Modus nicht eingeschaltet oder du läßt im Browser keine Cookies zu. ASP vergibt einen Sitzungscookie, der während der Sitzung die Sitzungs-ID (SessionID) speichert, damit der Surfer zuordbar bleibt.

      Du benutzt sicherlich den IIS v4 oder 5 oder höher. ??

      Tschau, tschüß,
      Frank

      1. Hi, hallo

        sehr weiser Rat ... er hat sicher ASP als Topic gewählt, wenn er mit PHP arbeiten will. Wer lesen kann ist klar im Vorteil.

        Zu Uwe:

        was meinst du mit "folgenden Code" ?

        <%
        set conn = Server.CreateObject("ADODB.Connection")
        set login = Server.CreateObject("ADODB.Recordset")

        conn.Open("tbl_passwort")

        name = Request.Form("Name")
        passwort = Request.Form("Passwort")

        zugang = false

        sql= "Select * from tbl_passwort where name = '" & Name & "' and passwort ='" & passwort & "'"
        login.open sql, Conn %>
        <%
         If login.Bof and login.eof then
          Response.Redirect "fehlermeldung.htm"
          Else
          status="ok"
         end if
        %>

        Das ist der COde den ich gemeint habe. Bisher habe ich noch keine Session-ID eingebaut. Wo muss ich welchen COde einbinden? Danke für eure Hilfe.

        Frank hat das richtig erkannt. Bitte um eine Antwort mit ASP.

        Evt. ist bei deiner Website der Session-Modus nicht eingeschaltet oder du läßt im Browser keine Cookies zu. ASP vergibt einen Sitzungscookie, der während der Sitzung die Sitzungs-ID (SessionID) speichert, damit der Surfer zuordbar bleibt.

        Du benutzt sicherlich den IIS v4 oder 5 oder höher. ??

        Tschau, tschüß,
        Frank

        1. Hi, hallo

          set conn = Server.CreateObject("ADODB.Connection")
          set login = Server.CreateObject("ADODB.Recordset")
          conn.Open("tbl_passwort")

          was ist "tbl_passwort"  ???

          die Connection öffnet man mit einem ConnectionString:

          z.b. cnString = "Provider=Microsoft.Jet.OleDB.4.0;data source=c:\db.mdb;user id=admin"
          oder: cnString = "dsn=UserDatenbank"

          conn.open cnString

          für eine einfache Authentifizierung via Sessions benötigst du eine Variable, die in der Session gespeichert wird und angibt, ob der Zugriff okay geht:

          Session("loggedin") = "ja"

          Am Anfang jedes ASP Scripts (bevor irgendwas anzeigbare an den Browser gesendet wird) brauchst du dann eine Überprüfung dieser Variable

          IF Session("loggedin") <> "ja" THEN
           Response.Redirect "login.asp"
          END IF

          das bindest du mit <!-- #include file="usercheck.asp" --> ein

          wenn du deine Angaben hier überprüfst:

          sql= "Select * from tbl_passwort where name = '" & Name & "' and passwort ='" & passwort & "'"
          login.open sql, Conn %>
          <%
           If login.Bof and login.eof then
            Response.Redirect "fehlermeldung.htm"
            Else
            status="ok"
           end if
          %>

          musst du einfach in dieses IF ... END IF einfügen, daß die Session-Variable ihren passenden Wert erhält.

          .EOF reicht imho in 99% der Fälle aus (spart ein paar Zeichen Tipparbeit)
          außerdem solltest du nicht AND sondern OR für EOF or BOF verwenden.

          WICHTIG: Response.Redirect funzt nur, wenn vorher nichts an den CLient zurückgeschickt wurde also HTML, <%=... %> oder Response.Write Sachen. Sonst Fehler!

          Mit den Infos hier solltest du dein Problem bewältigen können. Ich würde dir aber mal empfehlen, dich mit elementaren Dingen in ASP (Server,Application,Session,Response,Request) auseinanderzusetzen.

          Aus Gründen der Sicherheit solltest du noch auf "SQL Injection" bei deinem Login-Formular achten. Infos findest du dazu unter www.aspheute.com.

          Tschau, tschüß,
          Frank