CSS verändert...MySQL-Befehl!?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
SemiX
Mitglied
Beiträge: 154
Registriert: 05.09.2004 19:39
Wohnort: NRW
Kontaktdaten:

CSS verändert...MySQL-Befehl!?

Beitrag von SemiX »

Hallo zusammen :)

Der Titel sagt im Prinzip schon alles. Mittlerweile habe ich auch herausgefunden, wie ich dies umgehen kann. Dennoch wüsste ich gerne, was da eigentlich schief gelaufen ist.

Ich habe in meinem Forum vor einigen Tagen den Hangman Mod installiert. Jedoch habe ich schon bald feststellen müssen, dass dieser nicht richtig funktionierte. Die Anzahl der Fehlversuche, die der Mod zuließ, stimmte nämlich nicht mit der Anzahl der Versuche überein, die einem eigentlich zu stünden. Ich habe daher nach jedem Versuch die Datenbankeinträge überprüft und festgestellt, dass sich die Einträge stets um +2 erhöhten: Versuch 0 -> 2 -> 4 -> 6 an Stelle von 0 -> 1 -> 2 -> 3. Manchmal sogar setzten sich die Versuche wieder auf 0 zurück.

Da sich unter solchen Umständen nicht vernünftig spielen ließ, dachte ich zuerst an einen Rechenfehler in der hangman.php und suchte den ganzen Tag nach einer möglichen Stelle. Das Kuriose dabei war nur, dass im Skript selbst die Variablen richtig abgearbeitet wurden. Bei Aufruf wurde die Anzahl der bisherigen Versuche (nachfolgend "BV" genannt) aus der Datenbank abgerufen und mit der maximal erlaubten Versuchen verglichen. War BV kleiner, wurde der Rate-Versuch zulassen, BV um +1 erhöht und wieder in die Datenbank geschrieben. Am Ende des Skriptes wurden die page_header.php und der Footer includiert.

Soviel zum groben eigentlich korrekten Aufbau. Nach langem hin und her (sonst wird der Text hier zu kompliziert) bin ich dann zu dem Ergebnis gekommen, dass das Parsen der overall_header.tpl am Ende der includierten page_header.php die Quelle des Übels war. Und warum? Weil im Quelltext ein style="background-image:url();" stand - und zwar ein leeres. Das Hintergrundbild wird bei mir nämlich dynamisch eingefügt und derzeit habe ich keines eingerichtet. Sobald in url() aber der Link zu einem Hintergrundbild gegeben war, zählte auch die Datenbank wieder richtig.

Könnte mich also jemand bitte darüber aufklären, welche Grundregel ich diesmal gebrochen habe? :oops: Ich hätte mir nie träumen lassen, dass dermaßen weitreichende Auswirkungen auf die Datenbank die Folge sein könnten. Zumal das style="background-image:url();" erst etliche Programmzeilen hinter dem eigentlichen Datenbankeintrag / SQL-Befehl auftaucht.

Zur Reprodktion dieses Nervenspiels:
- Installiere Vanilla phpBB 2.0.22
- Installiere den Hangman Mod 1.5.6
- Deaktiviere im AdminCP die Einstellung "Raten erratener Buchstaben führt zu Punktabzug, kein übermittelter Buchstabe führt zu Punktabzug" in der Hangman-Config
- Erstelle zum Vergleich ein Hangman-Rätsel und löse dies. Die DB-Einträge sollten korrekterweise um +1 erhöht werden.
- Füge nun an beliebiger Stelle im Body der overall_header.tpl ein style="background-image:url();" ein. Ein <div style="background-image:url();"></div> zum Beispiel reicht auch.
- Erstelle ein Hangman-Rätsel und löse dies. Die DB-Einträge sollten nun um+2 erhöht werden.

EDIT: Das Ganze scheint nur im Firefox zu passieren. Nicht aber im Internet Explorer :o Ein Bug?
Kein Privatsupport. Das Forum leistet gute Hilfe- und bessere als ich allemal... (:
Antworten

Zurück zu „Coding & Technik“