Zum Inhalt springen

Mysql/php Browserabhängiges verhalten ?!?


schorschi

Empfohlene Beiträge

Hallo zusammen.

Ich hoffe ich bin hier richtig mit meinem Problem.

Ich sitze gerade an der ausarbeitung eines Shops und bin auf ein sehr merkwürdiges browserabhängiges Verhalten gestoßen.

Wenn ich einen Artikel in den Warenkorb lege und bei Eintritt in die entsprechende Internetseite, bei mir 'item.php' die Werte auslese, entsprechend auswerte und in der Datenbank aktualisiere oder anlege, habe ich folgendes Problem.

Bei Eintritt in die Website ist der Bestand in der DB i.O., die Bearbeitung der Daten und das einpflegen der neuen Werte per Skripte auch i.O., kurz vor dem erstellen des </html> zeigt mir eine Datenbankabfrage ebenfalls, dass alle Werte so eingetragen sind wie sie sein sollten. Alle Datenbankbefehle sind, meines erachtens, korrekt formuliert und führen die Änderungen durch, welche ich bezwecken möchte.

ABER: Öffne ich nach dem Aufrufen und dem anzeigen der Website die Datenbank mit PhpMyAdmin, so stellt sich heraus, das der zugeführte Artikel doppel in die Datenbank eingefügt wurde. Sprich die Datenbankoperation welche ich EINMAL aufrufe mit den korrekten Parametern, wird zweimal ausgeführt. Auch wenn ich per echo $sql den Datenbankbefehl anzeigen lasse wird dieser auch nur einmal angezeigt.

Jetzt stelle ich mir natürlich die Frage wat n dat n ??? Also die letzte angewiesene Datenbank operation in meiner 'item.php' ist das auslesen per 'Select Statement' mit eindeutigen Argumenten. Aber im Anschluß, obwohl kein Datenbefehl mehr aufgerufen wird, werden die Werte nochmals geändert.

Dieses Verhalten passiert im Firefox (Version 2. bla (ich weiß es gibt die 3.06)) aber auch im GoogleChrome. Beim IE habe ich diesen Effekt nicht.

Da ich in php mit Klassen arbeite, vermute ich den Fehler nicht direkt im Quellcode, sondern in meiner unachtsahmkeit von wegen Klassenname Konstruktor oder ähnlichem. Die Seite wird auch nicht per Umleitung doppelt aufgerufen. Ich dachte auch schon ob es wie ein RollBack vielleicht einen ähnlichen Befehl gibt welcher versucht nochmals das letzte Update durchzuführen bevor die DB geschloßen wird. Aber ersten noch nix davon gehört und zweitens wird nach jedem Datenbankbefehl die Datenbak wieder geschloßen.

GANZ WICHTIGE FRAGE: Wenn ich doch die Datenbankbefehle per PHP, also einer serverseitigen Sprache implementiere, wieso ein browserabhängiges Verhalten ?

Ich weiß, jetzt kommt das Thema zeig mal ein paar Codeschnipsel. Problem: Ich versuche einen objektorientierten Ansatz zu erstellen und müßte, um den Quellcode zu zeigen, rund 15 Dateien hochladen und da müßte erstmal einer durchsteigen, den ganzen Krempel durchlesen und sich einige Zeit damit beschäftigen.

Ich weiß mein Problem ist sehr allgemein formuliert, aber es müsste irgendwas mit dem Browserverhalten zu tun haben da ich alle relevanten Stellen im Quellcode, welche ein Update in der Datenbank durchführen jetzt mehrfach getestet habe und eigentlich, zumindest in meinen Augen, korrekt arbeiten.

Ich hoffe Ihr könnt was mit meinen Formulierungen anfangen...

Gruß

Joerg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielleicht noch ein interessanter Nachtrag, auf der suche nach meinem Fehler habe ich den Befehl

error_reporting(E_ALL);

aufgerufen. Bei Firefox habe ich die Fehlermeldung erhalten "Website nicht erreichbar, Serververbindung wurde zurückgesetzt"

Beim IE wird die normale Internetseite angezeigt ohne irgendwelche Fehleranzeigen, obwohl so einige angezeigt werden müßten. Offenbar wird der Befehl hier beim IE ignoriert was mich vermuten läßt das, warum auch immer, ein konfigurationsproblem vorliegt.

Wenn ich das Prog "WinMySqladmin" neben der Systemuhr mit dem Reiter Database anzeigen lasse, werden die entsprechenden Tabellen NICHT angezeigt.

Sehr wahrscheinlich ist mein Problem also auch in der falschen Rubrik gepostet, also an den Admin hier, falls falsch war keine absicht bitte verschieben. Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, aber ich verstehe das Problem nicht wirklich.

PHP Code kann im Grunde nicht browserabhängig verarbeitet werden, denn PHP wird auf dem Server (!) geparst und verarbeitet. Natürlich kann man den Browser aus dem HTTP Header des Datenstroms lesen, aber ich denke nicht, dass Du das gemacht hast.

Sorge dafür, dass Du validen HTML Code erzeugst, ebenso wie strukturierten und korrekten PHP Code.

Ohne, dass Du das Problem so beschreibst, dass man überhaupt einen Ansatzpunkt hat, Dir zu helfen, wobei der Code schon eine sinnvolle Quelle wäre, ebenso wie die Logs des Webservers, kann man nicht (!) helfen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...