OKAPI-Frage: Hint in Plain-Text oder HTML?

Hier geht es um die Programmierung von Opencaching.de - User mit Erfahrungen im Bereich PHP, MySQL, HTML, JavaScript, CSS werden hier ständig gesucht
Antworten
Benutzeravatar
ra_sch
Micro
Micro
Beiträge: 273
Registriert: 07.10.2012, 21:06

Hi,

ich habe nochmal eine Frage zur OKAPI. Vor ein gut zwei Wochen bekamen wir im Forum einen Fehlerbericht, dass der Hint von OCED69 nicht richtig angezeigt würde. Es stellte sich heraus, dass er Zeichen wie '<' enthält, wir den Hint aber als HTML interpretieren, so dass ein Teil abgeschnitten wurde.
Als ich das Problem gestern lösen wollte, stellte ich fest, das der Hint jetzt als HTML (mit < und <br />) zurückgegeben wurde. Die Dokumentation spricht an dieser Stelle immer noch von Plaintext. Deswegen meine Frage: Ist die OKAPI hier geändert (ab rev 810?) und die Dokumentation nicht nachgezogen oder liegt das an einer Änderung allein auf oc.de?
Ich konnte in der Versionsgeschichte oder commit-meldungen für die OKAPI nichts erhellendes finden.
following

An der OKAPI wurde nichts geändert, aber im OC.de-Quelltext fällt mir Folgendes in editdesc.php auf (auch nicht neu):

Code: Alles auswählen

$hint = htmlspecialchars($_POST['hints'], ENT_COMPAT, 'UTF-8');
Ich befürchte, dass hier ein ähnliches Minenfeld lauert wir beim Logtext-Format; siehe https://code.google.com/p/opencaching-a ... ail?id=124. Werd mir das in den nächsten Tagen mal genauer anschauen, auch im polnischen Code.
Benutzeravatar
ra_sch
Micro
Micro
Beiträge: 273
Registriert: 07.10.2012, 21:06

Danke für die schnelle Rückmeldung. Ist schon ein bisschen merkwürdig, da der Cache ja recht neu ist (17.5.2013). Habe wir den OC-Code dann auch nochmal durchgeschaut. Die nur-text-variante erscheint schon eingermaßen unplausibel.
following

Die Hints sind auf allen OC-Installationen per nl2br(htmlspecialchars($hint, ENT_COMPAT, 'UTF-8')) codiert. Die OKAPI liefert sie genau in diesem Format zurück und hat das wohl schon immer so getan.

Das Problem besteht auch im GPX-Format, nicht nur in der OKAPI sondern auch beim direkten Download von OC. :(

Mal schauen, wie wir aus diesem Chaos wieder rauskommen. Für das bestehende hint-Feld gibt es keine saubere Lösung - egal ob wir die Doku oder die Codierung ändern, immer können irgendwelche Clients auf die Schnauze fallen, weil sie vom Gegenteil ausgehen.

Es könnte auf ein neues hint2-Feld hinauslaufen, das tatsächlich Plaintext enthält, und das hint-Feld erhält den Status "Format undefiniert" und deprecated.
Benutzeravatar
ra_sch
Micro
Micro
Beiträge: 273
Registriert: 07.10.2012, 21:06

Ich hatte in der Zwischenzeit auch noch ein wenig gestöbert und die von dir angesprochenen Stellen inspiziert. Das wäre dann an sich ja auch klar, und es müsste nur die Dokumentation angepasst werden (das es ja immer schon so war). Was mich dabei nur frappiert ist die Tatsache, das ich den nicht-encodeten Hint hier bei mir gesehen habe! Wie kann der da Überhaupt gelandet sein frage ich mich?
Kann man eventuell auf der Datenbank prüfen, wie der Status quo bzgl. der Hints ist? Vielleicht sollte ich mir über di XML-Schnittstelle mal einen Abzug besorgen....
following

Ich kann keine uncodierten  Hints in der Datenbank entdecken. Kann es sein, dass du da ein "<br />" gesehen hast das von nl2br erzeugt wurde?
following

Es gibt jetzt zwei neue Plaintext-Felder 'hint2' und 'hints2'. Die alten Hint-Felder sollten nicht mehr verwendet werden.
Antworten