dedlfix: Debugging-Tipps

Beitrag lesen

Hi!

Nun implementiere ich den Code in einer größeren Anwendung und treffe auf folgende Schwierigkeit; die nachträglich erstellten Input-Felder werden nicht übertragen, d.h. sind nicht in $_POST auffindbar.

Ein erster Blick sollte dann mit solchen Tools wie der livehttpheaders-Extension für den Firefox den vom Browser gesendeten Daten gelten. Die genannte Extension kann dir die POST-Daten anzeigen. Vielleicht hast du den neuen Input-Elementen keine eindeutigen Namen gegeben. Es würde auch ein []-Anhängsel gehen, dann wird ein Array-Element erzeugt und gleichnamige Elemente überschreiben sich nicht.

Das PHP-Error-Reporting ist voll aufgedreht und trotzdem schweigsam.

Solange du nicht auf nicht ungeprüft auf nicht Vorhandenes zugreifst, bleibt das auch still.

Und da ich von der Testumgebung weiß, dass meine Ansätze prinzipiell funktionieren, muss ich jetzt über Wechselwirkungen mit dem bestehenden System spekulieren.

Du hast das auch möglichst produktivumgebungsnah getestet? Also beispielsweise mit einem Tabellenrest, der ungefähr der Produktivumgebung entspricht.

Mir ist an dem bestehenden System aufgefallen, dass zwei Formulare in einer Datei verwendet werden. Kann es womöglich damit zusammenhängen?

Solange sie nicht ineinander geschachtelt sind oder du erwartest, dass die Daten mehrerer Formulare gleichzeitig gesendet werden, kannst du so viele Formulare einbauen, wie du lustig bist.

Oder hat jemand mal ähnliche Erfahrungen gemacht und kann mir daher einen Tipp geben? Ich bin etwas ratlos, wie ich jetzt zu debuggen habe.

Es gibt viele Wege, Fehler zu machen. Alle kann man gar nicht erfahren und die Ursachen können selbst bei ähnlichen Auswirkungen ganz andere sein. Das Beste ist immer noch individuelles Debugging. Überlege dir, wo welche Daten entstehen, welche Wege sie genau gehen und wie du diese Wege überprüfen kannst. Ein Beispiel wäre, wie oben vorgeschlagen, zu prüfen was der Browser absendet und nicht nur, was beim Server ankommt (genauer gesagt, was PHP aus den ankommenden Daten gemacht hat).

Lo!