Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Überprüfen von HTML-Formularen mit ASP

Geschrieben von: Christian Koller
Kategorie: ASP Grundlagen

This printed page brought to you by AlphaSierraPapa

Wenn ein Besucher Ihrer Site ein HTML-Formular abschickt, so ist oft der nächste Schritt, die eingegebenen Werte des Formulares zu überprüfen und gegebenenfalls eine Fehlermeldung auszugeben.

Wie setzt man dies mit ASP im einzelnen technisch um?

Wenn es sich um ein einfaches Formular handelt, so ist das folgende Verfahren oft zielführend: Das Formular wird von der selben ASP-Seite ausgegeben, die auch die Überprüfung der eingegebenen Formularwerte übernimmt. Ausserdem verarbeitet die ASP-Seite bei positiver Überprüfung die Formular-Werte, um danach erst eine neue Seite aufzurufen.

Sollte die Überprüfung der Formularwerte negativ sein, so wird eine Fehlermeldung ausgegeben und das Formular noch einmal angezeigt.

Dies bedeutet, daß das Formular an die selbe Seite abgeschickt wird, von der das Formular generiert wird. Die Seite prüft dann, ob die Werte gültig sind, und entscheidet, ob das Formular zusammen mit einer Fehlermeldung noch einmal ausgegeben wird, oder die Werte verarbeitet werden und eine neue Seite aufgerufen wird.

Das folgende Beispiel zeigt, wie dies mit ASP implementiert werden kann:

<%

' Fehlerflag setzen, bisher kein Fehler gefunden
bError = False

' Hier den Namen des Submit Buttons statt "Abschicken" einfuegen
If Request.Form("Abschicken") <> "" Then
   ' Formular abgeschickt, Werte lesen
   ' Abgeschickte Feldwerte auslesen
   strName = Request.Form("Name")
   strEmail = Request.Form("Email")
   

   ' Ueberpruefen des Wertes der Email-Adresse
   If Instr(strEmail,"@") = 0 Then
      ' Kein "@" in Email Adresse, daher ungueltig
      ' Fehlerflag setzen
      bError = True
   ElseIf Instr(strEmail,".") = 0 Then
      ' Kein "." in Email Adresse, daher ungueltig
      ' Fehlerflag setzen
      bError = True
   Else
      ' Werte sind gueltig, daher verarbeiten
      
      ' Werte verarbeiten
      ...

      ' Neue Seite aufrufen, statt "neueSeite.asp" den Namen der
      '  neuen Seite angeben
      Response.Redirect "neueSeite.asp"
      Response.End
   End If
End If

' Fehlermeldung ausgeben wenn Formularwerte ungueltig
If bError = True Then
   Response.Write "Ihre Email Adresse ist nicht gueltig"
End If

' Formular ausgeben
'  Da das Formular an die erzeugende ASP Seite geschickt wird,
'   nutzt das Script den Befehl Request.ServerVariables("SCRIPT_NAME")
'  um Pfad und Namen der eigenen ASP-Seite auszugeben
%>

<FORM ACTION="<%= Request.ServerVariables("SCRIPT_NAME") %>" METHOD="POST>
Name:  <INPUT TYPE="TEXT" NAME="Name" VALUE="<%= strName %>"><BR>
Email: <INPUT TYPE="TEXT" NAME="Email" VALUE="<%= strEmail %>"><BR>
<INPUT TYPE="Submit" NAME="Abschicken" VALUE="Absenden">
</FORM>

Anmerkung: Wenn man zum Abschicken des Formulares statt der POST Methode die GET Methode verwendet, so muss im ASP-Code jedes "Request.Form" gegen "Request.QueryString" ausgetauscht werden.

Das Skript im vorhergehenden Beispiel prüft also beim Aufrufen, ob es gerade Werte eines abgesendeten Formulares erhält. Wenn das Formular tatsächlich abgeschickt wurde, so hat Request.Form("Abschicken") einen Wert verschieden vom Leerstring "". Dementsprechend liest das Skript in der ersten If-Verzweigung die Werte des Formulares aus und prüft die Email Adresse in den nachfolgenden If-Verzweigungen. Wenn die Email Adresse gültig ist, so verarbeitet das Skript die Werte und ruft die Seite neueSeite.asp auf.

Wenn die Email nicht gültig sein sollte, so enthält bError den Wert False, eine Fehlermeldung wird ausgegeben und das Formular noch einmal mit den bereits eingegebenen Werten angezeigt.

Sollte die Seite aufgerufen worden sein, ohne daß vorher das Formular an die Seite geschickt wurde, so liefert Request.Form("Abschicken") in der ersten If-Verzweigung keinen Wert. Dies bewirkt, daß keine Formularwerte abgefragt oder überprüft werden, sondern nur das Formular ausgegeben wird.

This printed page brought to you by AlphaSierraPapa

Verwandte Artikel

Übergeben von Informationen von einer ASP-Seite zur nächsten
http:/www.aspheute.com/artikel/20000529.htm
Auswertung von HTML Formularen mit ASP
http:/www.aspheute.com/artikel/20000406.htm
AutoCompletion für Web Formulare
http:/www.aspheute.com/artikel/20001121.htm
Benutzerverwaltung leicht gemacht: Teil 1
http:/www.aspheute.com/artikel/20020429.htm
Dynamische Stylesheets
http:/www.aspheute.com/artikel/20010306.htm
Fernöstliche Formulare / Unicode die Zweite
http:/www.aspheute.com/artikel/20001010.htm
Keine gefakten Bestellungen mehr!
http:/www.aspheute.com/artikel/20010531.htm
Kopieren verboten - Lizenzsicherung bei ASP Scripts
http:/www.aspheute.com/artikel/20020411.htm
Sonderzeichen für Forms decodieren
http:/www.aspheute.com/artikel/20010404.htm
Strukturierter Aufbau in der ASP-Programmierung
http:/www.aspheute.com/artikel/20011112.htm

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.