atlantyz
Erfahrenes Mitglied
Hallo zusammen,
mir ist in meiner Bestellverfolgung (PHP) etwas seltsames aufgefallen:
ich kodiere meine Post- Werte normal mit htmlentities und schreibe sie dann so in die Datenbank.
Jetzt ist mir aber neulich aufgefallen, dass htmlentities nur teilweise die Zeichen umwandelt.
Z.B. wandelt er zwar Hochkommas und das &- Zeichen um. Aber weder Umlaute (ä,ö,ü oder das §- Zeichen werden umgewandelt. Genausowenig %, $ oder ß.
Das führt entweder dazu, dass die Zeichen unkodiert in der DB landen, oder dass er gar nichts mehr in die DB schreibt (das tritt bei den Umlauten und dem Paragraph- Zeichen auf).
Jetzt mache ich mir Gedanken, ob ich htmlentites vielleicht falsch benutze? Also mein Code dazu sieht halt so aus:
Muss ich vielleicht auf der Formular- Seite schon irgendwas mit angeben? Was weiß ich, dass die HTML- Seite UTF-8 ist oder sowas (das geb ich bisher nicht mit).
Wenn ich mir die Post- Werte mit
ausgeben lasse, dann bekomme ich meinen Betreff noch angezeigt. Anschließend lasse ich ihn umwandlen und dann das Ergebnis nochmal ausgeben, doch dieses ist dann halt meist leer (je nach eingegebenem Zeichen).
Vielleicht hat ja jemand einen Hinweis zu dem Thema für mich?
Liebe Grüße,
Joey
mir ist in meiner Bestellverfolgung (PHP) etwas seltsames aufgefallen:
ich kodiere meine Post- Werte normal mit htmlentities und schreibe sie dann so in die Datenbank.
Jetzt ist mir aber neulich aufgefallen, dass htmlentities nur teilweise die Zeichen umwandelt.
Z.B. wandelt er zwar Hochkommas und das &- Zeichen um. Aber weder Umlaute (ä,ö,ü oder das §- Zeichen werden umgewandelt. Genausowenig %, $ oder ß.
Das führt entweder dazu, dass die Zeichen unkodiert in der DB landen, oder dass er gar nichts mehr in die DB schreibt (das tritt bei den Umlauten und dem Paragraph- Zeichen auf).
Jetzt mache ich mir Gedanken, ob ich htmlentites vielleicht falsch benutze? Also mein Code dazu sieht halt so aus:
PHP:
$betreff = htmlentities($_POST["betreff"], ENT_QUOTES, 'UTF-8');
Muss ich vielleicht auf der Formular- Seite schon irgendwas mit angeben? Was weiß ich, dass die HTML- Seite UTF-8 ist oder sowas (das geb ich bisher nicht mit).
Wenn ich mir die Post- Werte mit
PHP:
echo "<pre>";
print_r($_POST);
echo "</pre>";
ausgeben lasse, dann bekomme ich meinen Betreff noch angezeigt. Anschließend lasse ich ihn umwandlen und dann das Ergebnis nochmal ausgeben, doch dieses ist dann halt meist leer (je nach eingegebenem Zeichen).
Vielleicht hat ja jemand einen Hinweis zu dem Thema für mich?
Liebe Grüße,
Joey