Seite 1 von 1

Problem mit einfachem Python Formular

Verfasst: Mittwoch 9. März 2005, 12:35
von Ravebaby
Ich möchte ein einfaches Python Formular schreiben. Und zwar mit 2 Eingabefeldern für Name + Alter und einem Submit Button. Sind beide Felder ausgefüllt und wird der Submit Button gedrückt, soll eine neue Seite erscheinen, die meine Eingaben ausgibt. Hab folgenden Code geschrieben, allerdings lande ich auch wenn die Werte ausgefüllt sind nie im "if" Block, sondern immer im "else". Warum?!

Code: Alles auswählen

import cgi
import cgitb; cgitb.enable()

form = cgi.FieldStorage()

if form.has_key('submit') and form.has_key('name') and \
   form.has_key('age'):
    print 'Content-Type: text/html\n\n'
    print '''
<html><head><title>Eingegebene Werte</title></head>
<body>
 Sie heissen %(name)s und sind %(age)s Jahre alt.
</body></html>''' % {'name' : form['name'].value,
                     'age' : form['age'].value}
else:
    print 'Content-Type: text/html\n\n'
    print '''
<html><head><title>Test-Maske</title></head>
<body>
 <h3>Bitte Name und Alter eingeben:</h3>
 <form method="post">
 <table border=0>
 <tr><td>Name:</td><td><input type="text" name="name"/></td></tr>
 <tr><td>Alter:</td><td><input type="text" name="age"/></td></tr>
</table>
<input type="submit" name="submit" value="OK"/>
</form>
</body></html>'''
Edit (Leonidas): Code in Python Tags gesetzt.

Verfasst: Mittwoch 9. März 2005, 14:03
von Leonidas
Also bei mir geht dein Code einwandfrei, nachdem ich noch eine Shebang Zeile (#!/usr/bin/env python) hinzugefügt habe.

Verfasst: Mittwoch 9. März 2005, 14:10
von Gast
Ich hab die Zeile auch reingehauen, aber das Skript verhält sich unverändert...
Also es kommt das Fenster mit den beiden Eingabefeldern und wenn ich auf OK klick, kommt leider auch das Fenster mit den beiden Feldern und eben nicht die Ausgabe: Eingegebene Werte : Sie sind ... Jahre alt und heisse ...

Und das funktioniert bei Dir?!

Verfasst: Mittwoch 9. März 2005, 15:03
von Leonidas
Das funktioniert einwandfrei, guck es dir mal an. Ich werde es aber bald löschen, da es dort eigentlich nicht sein sollte..

Verfasst: Mittwoch 9. März 2005, 15:53
von Ravebaby
super, vielen Dank. Dann weiss ich schonmal, wie es aussehen kann ;)
Keine Ahnung, warum das dann bei mir nicht tut. Aber er kommt einfach von der Eingabemaske nicht weg....

Verfasst: Mittwoch 9. März 2005, 16:00
von Leonidas
Vielleicht hast du ja im Binärmodus übertragen? Ich habe einfach eine Putty Session aufgemacht und in nano eingefügt.

Verfasst: Mittwoch 9. März 2005, 17:22
von Ravebaby
ich versteh nich so genau was meinst...
Also ich hab halt nen Server in der cmd gestartet und dann das Skript aufgerufen. Mehr nicht. Wusste nicht, dass da noch mehr nötig ist.
Putty ist doch was zum files übertragen?!

Verfasst: Mittwoch 9. März 2005, 17:39
von Leonidas
Ach so, das läuft bei dir lokal! Ja, dann ist es was anderes... was hast du denn für einen Server?

Putty ist ein SSH Client, was aber mit deinem Problem nichts zu tun hat. Ich habe es nur genutzt, um die Datei auf meinen Server zu bekommen.

Verfasst: Donnerstag 10. März 2005, 08:51
von jens
Lass dir doch auch beim Formular die Werte von cgi.FieldStorage() ausgeben... Vielleicht als HTML-Kommentar... Dann weißt du ob da was schief läuft...