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

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Überprüfen von HTML-Formularen mit ASP

Geschrieben von: Christian Koller
Kategorie: ASP Grundlagen

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.

Verwandte Artikel

Übergeben von Informationen von einer ASP-Seite zur nächsten
Auswertung von HTML Formularen mit ASP
AutoCompletion für Web Formulare
Benutzerverwaltung leicht gemacht: Teil 1
Dynamische Stylesheets
Fernöstliche Formulare / Unicode die Zweite
Keine gefakten Bestellungen mehr!
Kopieren verboten - Lizenzsicherung bei ASP Scripts
Sonderzeichen für Forms decodieren
Strukturierter Aufbau in der ASP-Programmierung

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©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.