Meldung wenn kein Eintrag gefunden wurde
Uwe
- asp.net
0 Reinhold0 uwe0 Frank aus Ulm0 uwe
0 Tschanno0 Frank aus Ulm
Ich habe eine Login-Seite mit einem Formular gestaltet. Nach Eingabe eines Passwortes erhält der Benutzer Zugang zum entsprechenden Menü. Ist der Name oder das Passwort falsch oder nicht in der DB enthalten wird automatisch die Login-startseite geladen. Das mach ich mit folgendem Befehl.
<%
If login.Bof and login.eof then
Response.Redirect "stellen_login.asp"
Else
status="ok"
end if
%>
Was ich jetzt erreichen möchte ist, dass wenn nichts in der DB enthalten ist eine Meldung kommt. Wie ist das zu gestalten?
Besten Dank im voraus.
Wie wäre es mit:
Response.Redirect "stellen_login.asp?Fehler=1"
Den QueryString kannst Du dann abfangen, und eine entsprechende Meldung ausgeben:
<% IF Request.QueryString("Fehler") = 1 THEN
Response.Write " Den Typen gibt es hier nicht"
END IF
%>
Wie wäre es mit:
Response.Redirect "stellen_login.asp?Fehler=1"
Den QueryString kannst Du dann abfangen, und eine entsprechende Meldung ausgeben:
Wo muss ich diesen Code einbinden? Im Formular in dem Login und Passwort eingegeben wird oder im nächsten formular, in dem
Response.Redirect "stellen_login.asp?Fehler=1"
eingetragen ist.
<% IF Request.QueryString("Fehler") = 1 THEN
Response.Write " Den Typen gibt es hier nicht"
END IF
%>
Hi, hallo
Den QueryString kannst Du dann abfangen, und eine entsprechende Meldung ausgeben:
Wo muss ich diesen Code einbinden? Im Formular in dem Login und Passwort eingegeben wird oder im nächsten formular, in dem
Response.Redirect "stellen_login.asp?Fehler=1"
eingetragen ist.
Äh, bitte beschäftige dich mit der Methode Redirect genauer oder eher mit den Request/Response Objekten unter ASP. Denn du scheinst nicht zu wissen, wie die Basics von ASP funktionieren.
http://www.aspfaq.de
http://www.aspheute.com
sehr empfehlenswert auch Bücher von der MS Press zum Thema Dynamische Webprogrammierung ... besonders für Einsteiger
Ich habe dir einige Infos in meinem anderen (aussagekräftigeren) Posting gegeben.
Tschau, tschüß,
Frank
Hi Namensvetter
Kannst du bitte bei der Großschreibung von "Uwe" bleiben? Ich poste hier seit Jahren als "uwe" und moechte einfach Verwechslungen vermeiden. Danke!
uwe
IF (nix in der DB) print "nix in der db".
Tschanno
IF (nix in der DB) print "nix in der db".
wahnsinn!!
Frank
Hi, hallo
mal nachgefragt, was ist, wenn die Leute direkt stellen_login.asp aufrufen ??
was du zur wirklich sinnigen Lösung brauchen würdest wären u. U. Session-Variablen, die den Zustand loggedin=true|false speichern und bei =false die Loginseite aufrufen, wo der User Passwort und Namen eingeben muß
diese abfrage auf Session("loggedin") läßt du als SSI in all deine Seiten im Kopf einfließen, dort solltest du auch Response.Redirect verwenden.
Die Loginroutine ist schon annähernd richtig, du solltest abfragen, ob es die User/PW Kombi in der Datenbank gibt.
Mach dies bitte mit Stored Procedures (soweit bei deiner DB möglich) um SQL Injection zu verhindern.
wenn login dein Recordset ist, reicht in 99% der Fälle: IF login.eof then ...
außerdem dürftest du nicht mit "and" verknüpfen, sondern müsstest mit "or" verknüpfen
Aber zu deiner eigentlichen Frage ...
wenn du auf eine andere Seite forwarden möchtest mit dem Response.Redirect kannst du auf der eigentlich ausgeführten Seite, die deine Login-Prozedur enthält, keine Ausgaben machen.
Variante 1, wie von Reinhold beschrieben, gib dem Response.Redirect noch einen GET Parameter mit ?fehlergrund=1
Variante 2: du benutzt, wenn IIS 5++ vorhanden die Server-Methoden:
Server.Execute "seite.asp" zum direkten Ausführen einer anderen Seite
Server.Transfer "seite.asp" zum weiterreichen deiner Umgebungsvariablen (aus Request) an "seite.asp"
dann kannst davor auch Ausgaben bringen à la "dein Passwort ist falsch" etc.
Hope that helps (HTH)
Tschau, tschüß,
Frank