Verstehe fremden Code nicht - muss ihn aber ändern (Datenspeicherung in MySQL DB)

suntrop

Erfahrenes Mitglied
Hallo da draußen.

Ich stehe gerade etwas im Regen, da ich durch den PHP-Code eines fremden Programmieres nicht durchblicke. Wir hatten damals einen Auftrag erteilt, der wurde zum Größten Teil gut bearbeitet, aber jetzt kommen Änderungen und der Programmierer ist nicht mehr fassbar.

Ich weiß, es ist sehr kompliziert durch fremden Code zu sehen und vor allem dann, wenn nichtmal alles einsehbar ist.
Trotzdem, wenn jemand weiterhelfen kann, dann wäre ich extrem dankbar, da ich sonst nicht weiter weiß.
// Einleitung Ende ;)

Das Script nimmt aus einem Formular Daten entgegen (Name, Addresse etc.) und speichert diese in einer DB. Soweit so gut und so einfach.
Ich will einen neuen Radio-Button einfügen, dessen Value (0 oder 1) in der DB entsprechend gespeichert wird. Ist die Angabe nicht gesetzt, dann soll eine Fehlernachricht erscheinen.

Edit: Die DB-Speicheurng funktioniert. Es wurde der Integer-Wert von zwei " umgeben, weshalb wohl die Übergabe zur MySQl-Db nicht sauber funktionierte.
Das mit der Fehlernachricht ist allerdings nach wie vor bestehender Mangel :(


Ich habe die entsprechenden Stellen im Code nochmals kommentiert (# 157, 460).
http://paste.bradleygill.com/index.php?paste_id=45257

Mir ist klar, es ist so sicherlich nur sehr schwer nachvollziehbar, aber ich will diesen Hilferuf nicht ungenutzt lassen :)

Danke und Grüße
- suntrop -
 
Zuletzt bearbeitet:
Hi suntrop,

ich wuerde dies einfach um gehen und im Formular einem Radio-button , mit dem checked="checked" Attribut, vor auswählen. Dadruch ist gesichert das immer ein Wert übergeben wird , auch wenn der User dies ueberspringt/uebrliest.

mfg
 
Hast du denn schon überprüft, welche return-Anweisung in der Methode CheckInputData benutzt wird? Wenn eine der vor Zeile 157 liegenden ausgeführt wird, erfährst du ja erstmal nichts von deinem Fehler.

Wenn aber in Zeile 169 mit
PHP:
if (!is_null($this->error)){
            return $this->error; 
}
sowieso geprüft wird, wieso entfernst du nicht alle darüber liegenden "return" erstmal?
 
Bisher hatte ich die Behelfsmethode angewandt :)

Der Tipp mit den Returns war goldrichtig!
Ich verstehe aber noch nicht, weshalb einer der vorherigen drei Reutrns überhaupt ausgeführt wurde. Denn die drei Felder sind alle gesetzt gewesen und damit dürften die Anweisungsblöcke im If-Statement nicht ausgeführt werden?!

Eine Rückfrage noch - wie meintest du das, »überprüft, welche return-Anweisung in der Methode CheckInputData benutzt wird«? Kann ich das etwa irgendwie "debuggen" oder ausgeben lassen?

Oder so wie ich es jetzt gemacht habe, hintereinander auskommentieren?

Großen Dank, bin heilfroh das es jetzt läuft!
- suntrop -
 
Zurück