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.
OKAPI-Frage: Hint in Plain-Text oder HTML?
An der OKAPI wurde nichts geändert, aber im OC.de-Quelltext fällt mir Folgendes in editdesc.php auf (auch nicht neu):
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.
Code: Alles auswählen
$hint = htmlspecialchars($_POST['hints'], ENT_COMPAT, 'UTF-8');
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.
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.
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....
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....
Ich kann keine uncodierten Hints in der Datenbank entdecken. Kann es sein, dass du da ein "<br />" gesehen hast das von nl2br erzeugt wurde?
Es gibt jetzt zwei neue Plaintext-Felder 'hint2' und 'hints2'. Die alten Hint-Felder sollten nicht mehr verwendet werden.