Bug - Metatags werden falsch (doppelt) htmlentities codiert
Bug - Metatags werden falsch (doppelt) htmlentities codiert
Betrifft neuestes 4.8.12 mit AMR mit allen Modulfixes.
Die Fehler betreffen:
1) Titel
2) Generierte Meta Tags
3) Händisch eingetragene Meta Tags
[b]1. Bug [/b] - Im TITLE Tag: Kategorienamen werden nicht kodiert auf ä -> ä die angehängten Artikelnamen schon.
Beides sollte kodiert werden.
[b]2. Bug [/b] - Metatags werden falsch (doppelt) codiert. Dies gilt für die automatisch generierten Metatags und aus dem Artikelnamen generierten. Beispiel siehe unten
[b]3. Bug[/b] - Umlaute die in die Metadata Felder im Backend direkt eingegben werden (Keywords, Description), werden gar nicht mit htmlentities umgewandelt sondern landen direkt als Umlaut im Quelltext.
Nach meinen Tests werden diese von Google nicht verwertet wenn man die Codierung auf utf-8 hat! Bei latin funkt das schon. Diese Codierung mit utf-8 ist meines Erachtens aber die Beste. Und man sollte daher schon umwandeln.
Beispiel für Bug 1:
Bug - Metatags werden falsch (doppelt) codiert.
statt
ä
steht dann
ä
[code]<meta name="description" content="&amp;auml;" />
<meta name="keywords" content="oder, eine, ihnen, auch, können, mehr, infos, einem, nach, nicht" />
[/code]
Die Fehler betreffen:
1) Titel
2) Generierte Meta Tags
3) Händisch eingetragene Meta Tags
[b]1. Bug [/b] - Im TITLE Tag: Kategorienamen werden nicht kodiert auf ä -> ä die angehängten Artikelnamen schon.
Beides sollte kodiert werden.
[b]2. Bug [/b] - Metatags werden falsch (doppelt) codiert. Dies gilt für die automatisch generierten Metatags und aus dem Artikelnamen generierten. Beispiel siehe unten
[b]3. Bug[/b] - Umlaute die in die Metadata Felder im Backend direkt eingegben werden (Keywords, Description), werden gar nicht mit htmlentities umgewandelt sondern landen direkt als Umlaut im Quelltext.
Nach meinen Tests werden diese von Google nicht verwertet wenn man die Codierung auf utf-8 hat! Bei latin funkt das schon. Diese Codierung mit utf-8 ist meines Erachtens aber die Beste. Und man sollte daher schon umwandeln.
Beispiel für Bug 1:
Bug - Metatags werden falsch (doppelt) codiert.
statt
ä
steht dann
&amp;auml;
[code]<meta name="description" content="&amp;auml;" />
<meta name="keywords" content="oder, eine, ihnen, auch, können, mehr, infos, einem, nach, nicht" />
[/code]
Zuletzt geändert von ravi am Fr 5. Jun 2009, 00:27, insgesamt 3-mal geändert.
Re: Bug - Metatags werden falsch (doppelt) htmlentities codiert
hmm, hat keiner von euch dieses Problem?
Habe das auch bei anderen Installationen beobachten können.
Habe das auch bei anderen Installationen beobachten können.
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Bug - Metatags werden falsch (doppelt) htmlentities codiert
Bitte wählen sie die richtige Antwort:ravi hat geschrieben:hmm, hat keiner von euch dieses Problem?
- Ich hatte diesen thread noch nicht gelesen
- ich habe noch keine Zeit gehabt das zu prüfen
- ich behalte den Vorgang im Auge (autsch)
- Isch abe gar kein Audo...
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
-
- Beiträge: 3626
- Registriert: Di 12. Okt 2004, 20:00
- Wohnort: Voerde (Niederrhein)
- Kontaktdaten:
Re: Bug - Metatags werden falsch (doppelt) htmlentities codiert
So, das ist definitiv ein Bug in der Chain "cecCreateMetatags". Ich glaube nicht, dass (ab Zeile 224 in der Datei "contenido/plugins/chains/includes/include.chain.content.createmetatags.php"):
das macht, was es soll. Das htmlspecialchars() dürfte das htmlentities() vor Schwierigkeiten stellen, da htmlspecialchars() auch das Ampersand bereits umwandelt. Außerdem wird dort nicht beachtet, ob die Inhalte aus der Datenbank evtl. schon Entities enthalten. Im Extremfall habe ich bei UTF-8 beobachtet, dass die HTML-Ausgabe mitten in der Ausgabe des META-Elements abgebrochen wurde.
Code: Alles auswählen
case 'description':
//Build description metatag from first headline on page
$iCheck = CheckIfMetaTagExists($metatags, 'description');
$metatags[$iCheck]['name'] = 'description';
$metatags[$iCheck]['content'] = htmlentities(htmlspecialchars($sHeadline,ENT_QUOTES,$sEncoding));
break;
case 'keywords':
$iCheck = CheckIfMetaTagExists($metatags, 'keywords');
$metatags[$iCheck]['name'] = 'keywords';
$metatags[$iCheck]['content'] = htmlentities(htmlspecialchars($sText,ENT_QUOTES,$sEncoding));
break;
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Bug - Metatags werden falsch (doppelt) htmlentities codiert
Ist nicht htmlspecialchars nur eine Untermenge von htmlentities? Da würde doch nur der Aufruf von htmlentities reichen.
Wobei da dann noch die Angabe der weiteren Parameter fehlt.
Gruß aus Franken
Ortwin
Wobei da dann noch die Angabe der weiteren Parameter fehlt.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Bug - Metatags werden falsch (doppelt) htmlentities codiert
Danke, dass ihr da reinschaut. :)
Ja es reicht nur dies zu verwenden:
htmlentities($sText,ENT_QUOTES,$sEncoding);
--
Vom Verhalten her ist sicher auch ein Bug im Title - Tag da Kategorien und der Artikelname jeweils unterschiedlich kodiert werden.
Habe glaube ich auch Probleme feststellen können beim Codieren eines Gedankenstiches.
Jedenfalls besteht das Problem vor allem mit automatisch generierten Meta Codes. Wenn man selbst direkt Metatag Description, Keywords oder Title eingibt wird eigentlich richtig codiert und ich konnte noch keinen Fehler feststellen.
Ja es reicht nur dies zu verwenden:
htmlentities($sText,ENT_QUOTES,$sEncoding);
--
Vom Verhalten her ist sicher auch ein Bug im Title - Tag da Kategorien und der Artikelname jeweils unterschiedlich kodiert werden.
Habe glaube ich auch Probleme feststellen können beim Codieren eines Gedankenstiches.
Jedenfalls besteht das Problem vor allem mit automatisch generierten Meta Codes. Wenn man selbst direkt Metatag Description, Keywords oder Title eingibt wird eigentlich richtig codiert und ich konnte noch keinen Fehler feststellen.
Re: Bug - Metatags werden falsch (doppelt) htmlentities codi
Ich wollte nur mal Danke sagen ...
Re: Bug - Metatags werden falsch (doppelt) htmlentities codi
Also ich habe jetzt mal die entsprechenden Zeilen geändert, und wenn man explizit Angaben macht funktioniert es auch. nur wenn man die Felder frei lässtt, und auf automatisch generierte Meta Tags baut, wird noch doppelt- und dreifach kodiert: &amp;Uuml;berall Ampersand
Jemand ne Idee?
Code: Alles auswählen
case 'description':
//Build description metatag from first headline on page
$iCheck = CheckIfMetaTagExists($metatags, 'description');
$metatags[$iCheck]['name'] = 'description';
# $metatags[$iCheck]['content'] = htmlentities(htmlspecialchars($sHeadline,ENT_QUOTES,$sEncoding));
$metatags[$iCheck]['content'] = htmlentities($sHeadline,ENT_QUOTES,$sEncoding);
break;
case 'keywords':
$iCheck = CheckIfMetaTagExists($metatags, 'keywords');
$metatags[$iCheck]['name'] = 'keywords';
# $metatags[$iCheck]['content'] = htmlentities(htmlspecialchars($sText,ENT_QUOTES,$sEncoding));
$metatags[$iCheck]['content'] = htmlentities($sText,ENT_QUOTES,$sEncoding);