Ticket #194 (closed Aufgabe: fixed)

Opened 5 months ago

Last modified 2 months ago

Keine Sonderzeichen in Pings

Reported by: robertb Assigned to:
Priority: critical Milestone: Jlog 1.1.1
Component: Kernfunktion Version: 1.1.0
Keywords: Cc:

Description

Beim Empfangen eines Pingbacks verliert Jlog Sonderzeichen im Titel, was wohl auf die Umstellung auf UTF-8 zurückzuführen ist. Mein Blog wurde von 1.0.2 auf 1.1.0 aktualisiert und seitdem passiert folgendes (konkretes Beispiel):

Titel: Zugabe, Zugabe! - frei² -> Pingback: Zugabe, Zugabe! - frei

Attachments

Change History

07/19/2008 04:53:48 PM changed by robertb

Ich habe mal nachgeschaut: Die Tabelle jlog_comments, in der auch die Pings abgelegt werden, hat die Kollation latin1_swedish_ci. Die relevanten Felder type, homepage und name sind allerdings auf utf8_general_ci eingestellt. Allerdings wird der name beim ersten „fremden Zeichen“ abgeschnitten (s.o.).

09/10/2008 07:22:12 PM changed by driehle

Habe mir mal Debug-Ausgaben eingebaut und beim Veröffentlichen eines Blog-Eintrages in Jlog folgende Meldung bekommen:

http://localhost/jlog/jlog-1/2008/09/eintrag-1-ist-boese
Error: The source URI does not contain a link to the target URI, 
and so cannot be used as a source.

Diese Meldung stammt von dem fremden Server (da wo ich den Pingback hinschicken will) und besagt, dass auf meiner eigenen Seite kein Link zur fremde Seite wäre. Das ist auch korrekt, offensichtlich sendet Jlog den Pingback bevor der neue Eintrag veröffentlicht wurde - somit kann der fremde Server die Seite nicht prüfen.

09/10/2008 07:50:38 PM changed by driehle

  • status changed from new to closed.
  • resolution set to fixed.

Ich habe mit [1743] nun einen Patch eingespielt.

In diesem Fall haben zwei fehlerhafte Verhalten von Jlog mit reingespielt. Zunächst einmal hat Jlog dem anzupingenden Server eine falsche URL übermittelt, so dass dieser den Blog-Eintrag und die Referenz auf die eigene Seite nicht finden konnte. Das lag also nicht (wie vorerst von mir behauptet) an einer fehlerhaften Reihenfolge der Befehlsabarbeitung. Jlog übermittelte als URL z.B. http://localhost/jlog/jlog-2/log.php?y=2008&m=09&url=test-neu6. Die HTML-Kodierung ist hierbei fehl am Platz.

Desweiteren gab es einen Fehler beim Empfangen des Pingbacks, welcher sich so äußerte, wie Robert es im Bug-Ticket beschrieben hat. Das lag daran, dass Jlog versuchte den Titel des ankommenden Pings in Latin1 zu konvertieren und dann in die Datenbank zu speichern. Offensichtlich stammt dieser Code noch aus Zeiten, wo wir die Datenbank von Jlog noch Latin1-kodiert hatten. Ich habe auch dieses Problem behoben, indem nun der Titel als UTF8 kodiert wird (falls er nicht bereits UTF8 kodiert vorliegt). Wird der Titel so in die Datenbank eingespeichert, dann tritt kein Fehler mehr auf.


Add/Change #194 (Keine Sonderzeichen in Pings)




Action