Frank aus Ulm: Benutzer und Passwort aus DB abfragen

Beitrag lesen

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