Seite 1 von 1

Einbinden von Formulardaten mittels PHP in eine txt Datei

Verfasst: Mittwoch 29. Mai 2013, 16:01
von Sireextrem
Sehr geehrte Mitglieder des Python Forums,

seit kurzem stehe ich vor einem kleinen Problem. Ich sollte eine HTML Formular mittels Javascript Bedingungen auf Gültigkeit überprüfen anschließend war es meine Aufgabe die Daten mittels Python in eine .txt Datei zu schreiben. Die Felder in HTML haben alle eine ID und einen Namen der ebenso in die .txt Datei übernommen werden soll. Nun habe ich dabei ein Probleme der Code sieht einmal so aus:

Code: Alles auswählen

import cgi

print ("Content-Type: text/plain\n\n")

matrix = cgi.FieldStorage()
print ("Habe", len(form), "Datenfelder gefunden:")

f = open("test.txt", "a")

for key in form:
    print (key, "\t", matrix[key].value)


    f.write(matrix[key].value)

f.close()
    
Nun zum Problem er nimmt sagen wir mal 20 Werte auf dabei sind dann z. B. Werte wie Name oder Adresse diese werden aber nicht immer an die selbe Stelle gepackt z. B. landen Sie mal hinten oder in der Mitte.

Re: Einbinden von Formulardaten mittels PHP in eine txt Date

Verfasst: Mittwoch 29. Mai 2013, 16:23
von Sirius3
@Sireextrem: Was ist das Problem? Was Du bekommst hast Du ja geschrieben, aber was willst Du?

Re: Einbinden von Formulardaten mittels PHP in eine txt Date

Verfasst: Mittwoch 29. Mai 2013, 17:49
von Sireextrem
Okay ein Beispiel der Anwender gibt ein:

Name: Fredi
Alter 19
Klasse BBI1

nun trägt Anwender 2 die Daten ein:

Name Karl
Alter 21
Klasse BBI2

in die Datei schreibt der Code z. B.

Fredi BBI1 19
21 Karl BBI2

und ich möchte das die Block weise untereinander sind so das ich anschließend ; einsetzen kann oder Tabs um es zu gliedern.

Re: Einbinden von Formulardaten mittels PHP in eine txt Date

Verfasst: Mittwoch 29. Mai 2013, 18:17
von BlackJack
@Sireextrem: Dann musst Du die Schlüssel in einer festen Reihenfolge abfragen. Am besten gibst Du die sowieso im Programm fest vor, denn vom Client könnten ja sonstwie manipulierte Daten herein kommen.

Re: Einbinden von Formulardaten mittels PHP in eine txt Date

Verfasst: Donnerstag 30. Mai 2013, 17:30
von Sireextrem
Danke BlackJack werde ich im nächsten Schritt berücksichtigen habe nun folgendes probiert:

Code: Alles auswählen

for key in form:
    if form.has_key("E21"):
        data = form("E21").value
        f.write(data)
    else:
        f.write(";")
dabei schreibt er leider gar nichts mehr in die Datei kann mir da vllt wer sagen wo der Fehler ist er schreibt nicht mal das ;. Bin ja leider noch nicht so gut in Python versuche aber mein bestes eine Analyse wieso es nicht klappt und so wäre schon ausreichend. E21 ist der Name des Feldes in HTML das übergeben werden soll. Da er nicht mal ; ausgibt denke ich liegt das Problem nicht an der Bezeichnung von E21 oder?

Re: Einbinden von Formulardaten mittels PHP in eine txt Date

Verfasst: Donnerstag 30. Mai 2013, 17:56
von Sirius3
»schreibt gar nichts mehr« ist keine ausreichende Fehlerbeschreibung. Der Grund, dass er gar nichts mehr schreibt, lieg daran, dass das Programm mit einer Fehlermeldung abbricht. Die landet meist in irgendwelchen log-Dateien, je nach dem wie Dein Server konfiguriert ist. Ohne dass wir diese Fehlermeldung kennen, kann man nur raten (z.B. dass die Fehlermeldung »AttributeError: FieldStorage instance has no __call__ method« lautet), und das ist beim Programmieren immer eine schlechte Methode.

Re: Einbinden von Formulardaten mittels PHP in eine txt Date

Verfasst: Freitag 31. Mai 2013, 20:33
von droptix
Wo kommt die Variable `form` her? Ich sehe die Definition nicht... ?

Vorschlag: (1) Ermittle zuerst die Schlüssel deiner `matrix` und speichere die als Liste (die Reihenfolge der Elemente ist dann fest). (2) Gehe dann in einer Schleife durch alle Zeilen der `matrix` und iteriere über alle Schlüssel, Pseudo-Code:

Code: Alles auswählen

keys = form.keys()
for line in matrix:
    for key in keys:
        print("%s = %s" % (key, line[key]))