dedlfix: Daten werden doppelt in mysql Datenbank geschrieben

Beitrag lesen

Hi!

Mir kam schon der Gedanke das das Script irgendwie zweimal aufgrufen wird, da nn habe ich einefach eine Echo Ausgabe für den Monitor hingemacht, doch diese wird nur einmal angezeigt.

Du hast auch in die Quelltextansicht geschaut? Nicht das die eine Ausgabe vom Browser nur nicht angezeigt wird.

Die Vermutung, dass etwas zwei Mal aufgerufen wird, lässt sich nicht in jedem Fall mit einer Kontrollausgabe bestätigen. Browser stellen auch Requests, deren Response sie nicht unmittelbar anzeigen - beispielsweise einzubindende Script-, Style- und andere Ressourcen. Um so etwas zu erkenenn, brauchst du entweder eine Log-Möglichkeit, die unabhängig vom Browserstatus mitschreibt. Das könnte eine Datei auf dem Server sein, wobei du Dateisperren beachten solltest, wenn du dir nicht eine Verfälschung des Ergebnisses durch ein Nebenläufigkeitsproblem einhandeln willst. Sehr nützlich ist auch die livehttpheaders-Extension für den Firefox und ähnliche Tools zum Anzeigen der HTTP-Header, wobei für diesen Fall nicht die Header interessieren, sondern die Requests an sich. Damit kannst du alle Requests sehen, nicht nur die Ausgaben von einem. Allerdings kann es sein, dass dein Fehler nur mit einen bestimmten Browser auftritt. Es könnte nämlich sein, dass du eine Ressource nicht ordnungsgemäß eingebunden hast, was einige Browser veranlasst, dies zu ignorieren, anderen hingegen fordern sie an und treffen damit dein (Index-)Script. Solchen Fehlern kann man durch Validierung auf die Spur kommen.

Wenn das alles nicht hilft, oder du zwar die doppelten Ausrufe feststellst, jedoch ihre Ursache nicht findest, hat es sich bewehrt, entweder von klein auf erst einmal nur die nötigste Funktionalität aufzubauen und dann schrittweise den Rest hinzuzufügen, bis der Fehler da ist, oder aus der anderen Richtung kommend, immer wieder Teile zu entfernen, bis der Fehler weg ist. Dann weißt du, dass der Fehler irgendwo dort ist oder im Zusammenhang mit dem eben hinzugefügten oder entfernten Code auftritt.

Lo!