Python: Eingabekontrolle eines Formmailers

von Kai Surendorf

Kaum eine Website ohne Online-Formular. Und wie lassen sich die Eingaben des Formulars mittels Python auswerten? Dieser Artikel zeigt, wie es geht.

Im Beispiel des vorangegangen Artikels wurden die Eingaben des Formulars ausgelesen und an eine Variable übergeben.

puffer = cgi.FieldStorage ()

Die Variable puffer enthält die Formular-Eingaben und zwar in Form eines dictionaries, einem Python eigenen Variablen-Typ.

Was ist ein dictionary?
Ein dictionary funktioniert, wie der Name es schon andeutet, ähnlich wie ein Wörterbuch. Wenn Sie das letzte Beispiel ausprobiert haben, haben Sie in der endgültigen Email einen Text etwa mit diesem Inhalt vorgefunden:

{ 'Name' : 'Surendorf', 'mail' : 'surendorf' }

Die geschweiften Klammern zeigen an, dass es sich hierbei um ein dictionary handelt. [Eckige Klammern indizieren eine normale Liste.] Dabei entspricht der Wert links des Doppelpunktes dem Namen des Formularfeldes, der Wert rechts dem, was der Absender eingegeben hat. Zugriff auf die einzelnen Elemente des dictionaries hat man mit Hilfe des Wertes links. Diese werden keys genannt. Wollte man aus dem obigen Beispiel nur den Namen ausgeben und nichts anderes, so ließe sich dies mit

print puffer['name']

bewerkstelligen. Damit spricht man aus dem dictionary puffer den Wert des keys 'name' an und gibt diesen auf dem Bildschirm aus. Der Vorteil eines dictionaries gegenüber einer einfachen Liste, in der die Daten nacheinander gespeichert werden, dürfte auf der Hand liegen: Beim dictionary greift man mit Hilfe des keys auf den Wert zu, während man sich bei einer Liste immer merken muss, an welche Stelle der Wert liegt, der für den Namen steht.

Schlagen Sie nach!
Nehmen wir einmal an, Sie wollen unbedingt einen Namen und eine Email-Adresse von Ihrem Absender erfahren. Es gilt nun zu prüfen, ob hier etwas angegeben wurde. Die Abfrage der Keys 'Name' und 'mail' muss also ein brauchbares Resultat erbringen. Für den Fall, dass nichts angegeben wurde, soll der Absender auf eine entsprechende Seite weitergeleitet werden. Dazu werden die Werte an neue Variablen übergeben und anschließend abgefragt.

name = puffer ["name"].value
mail = puffer ["mail"].value
if name == "":
   print "Location: http://www.domain.de/unvollstaendig.htm"
if mail == "":
   print "Location: http://www.domain.de/unvollstaendig.htm"


Fügen Sie nun diesen Code-Schnipsel in das Beispiel von Teil 2 an der Stelle ein, bevor die Email zusammengestellt wird, so wird der Absender, wenn kein Name oder keine Email-Adresse angegeben wurde, auf eine andere Seite umgeleitet und die Email nicht verschickt.

Perspektiven
Selbstverständlich lässt sich dieses Verfahren weiter perfektionieren, sei es, um die zu verschickende Email ansprechend zu formatieren, automatisch etwaige Bestellnummern einzufügen oder den Absender - je nachdem, welche Angaben er gemacht hat - auf andere Bestätigungsseiten umzuleiten.

 

 
   Anzeigen

Navigation:    Webdesign - Programmierung - Web Grafiken - Software Guides - Tools - Templates - Schriftarten - Seminare - IT News
Partner:   Template OK - PCopen - SITEopen - PCopen Schweiz - HTMLopen Schweiz - VirtualUniversity.ch - WEB-SET.com - YesMMS - Job und Karriere