Seite 1 von 1

cgi.Fieldstorage und leere Formularfelder

Verfasst: Samstag 9. Juli 2005, 14:52
von bicpi
Hi zusammen,
ich habe ein HTML-Formular mit einigen input-Feldern. Wenn der value eines der Felder ein leerer String ist (also value=""), kommt das Feld im FieldStorage gar nicht an...Das ist in meinen Anwedungen ziemlich problematisch, da ich überprüfen muss, ob das Feld auch da ist (auch wenn es leer sein sollte). So kommt es zum Beispiel zum Fehler, wenn das Formular leer abgeschickt wird oder ein Feld frei gelassen wird. Eine Vorbelegung mit einem Leerzeichen führt zwar in Python zum Erfolg aber das Formular reagiert dann wirklich verwirrend.

Kann ich leere Felder trotzdem irgendwie ankommen lassen im FiledStorage?
Ist die Reaktion Standard, dass die Felder dann gar nicht aufgenommen werden?

Danke für eure Hilfe und viele Grüße,
bicpi

Edit (Leonidas): Verschoben.

Verfasst: Samstag 9. Juli 2005, 15:17
von jens

Verfasst: Samstag 9. Juli 2005, 15:59
von bicpi
keep_blank_values ! Super. Danke.

Kleine Frage am Rande, um nicht einen neuen Thread aufmachen zu müssen:
ich suche ein Äquivalent zur PHP-Funktion "htmlspecialchars()", die Sonderzeichen wie HTML-Code korrekt codiert, also zB aus ä ä macht, Anführungszeichen umwandelt usw.?

Danke nochmal

Verfasst: Samstag 9. Juli 2005, 16:27
von Leonidas
Vielleicht hilft dir ja htmlentitydefs.entitydefs... die Funktion htmlspecialchars() kannst du dir damit recht leicht selbst bauen.

Verfasst: Samstag 9. Juli 2005, 16:41
von bicpi
Danke, das schaut schon mal ganz gut aus, aber ich verstehe nicht ganz, wie ich mit dem Dictionary umgehen soll. Gibt es Funktionen die dieses benutzen, oder schreibe ich mir selbst ein? Wie setzte ich an?

Verfasst: Samstag 9. Juli 2005, 16:56
von Leonidas
Ungetestet, aber etwa so:

Code: Alles auswählen

import htmlentitydefs
def htmlspecialchars(chunk):
    for key in htmlentitydefs.entitydefs.keys():
        chunk = chunk.replace(key, htmlentitydefs.entitydefs[key])
    return chunk