Hallo,
ich habe hier ein Problem mit dem Modul FrontEndUsers und Sonderzeichen.
Bearbeitet ein FEU seine Daten (Template für Einstellungen ändern), werden alle Sonderzeichen als Entitäten codiert (aus " wird ") in der Datenbank abgespeichert. Auf der Website werden diese Daten jetzt korrekt dargestellt.
Sobald der FEU das Formular "Template für Einstellungen ändern" erneut aufruft, werden die Sonderzeichen jedoch nicht decodiert, sondern als Entität im Textfeld dargestellt. Speichert man das Formular ohne Änderungen ab wird dann aus &qout; " da das & der Entität als Sonderzeichen erkannt und konvertiert wird.
Habe ich da irgendwo etwas falsch eingestellt?
Ich verwende CMSMS 1.3, FEU 1.4.2, PHP 5.2.6, MySQL 5 mit utf8_general_ci
Vielen Dank & Grüße
sw
FrontEndUser und Sonderzeichen
Re: FrontEndUser und Sonderzeichen
Danke, dann werde ich mal suchen.
Re: FrontEndUser und Sonderzeichen
Der Inhalt der Inputfelder wird aus Sicherheitsgründen in Entitäten umgewandelt.sw wrote: Danke, dann werde ich mal suchen.
Dazu wird aber nicht nur die php Funktion htmlentities() oder htmlspecialchars() verwendet, sondern eine eigene Funktion der API.
Die da heißt cms_htmlentities().
Diese Funktion wird immer aufgerufen, wenn man z.B. ein Inputfeld mit der API Funktion CreateInputText() erstellt.
(Alle Parameter, die an diese Funktion übergeben werden, werden erstmal umgewandelt)
D.h. wenn man einem Inputfeld ein bereits in Entitäten umgewandelten Wert vorgeben will, wird dieser automatisch erneut umgewandelt.
Man müsste, bevor man diese CreateInputText() Funtion aufruft, den Wert wieder in "Nicht-Entitäten" umwandeln.
Also z.B. so:
($description sei jetzt mal der Wert für das Textfeld, der bereits Entitäten beinhalten könnte)
$mod = get_html_translation_table ( HTML_SPECIALCHARS, ENT_QUOTES );
$mod = array_flip ( $mod );
foreach($mod as $k=>$v)
{
$description = str_replace('�','&#',$description);
$description = str_replace($k,$v,$description);
}
$this->smarty->assign('description_input', $this->CreateTextArea(false, $id, $description, 'description','','','','',32,2));
So habe ich es mal in einem Modul gemacht.
Re: FrontEndUser und Sonderzeichen
Danke, das werde ich mal ausprobieren.