Zeichen & Gefahren

Die Umlaute sehen aber komisch aus? Das ist ganz normal, und eines der beliebtesten Themen von Programmierern. Es gibt am Computer verschiedene Codierungen für Zeichen. Was heißt Codierung? Der Computer kennt ja nur 1 und 0, und welche Kombination von Einsen und Nullen beschreibet den Buchstaben "Ä"? Dafür gibt es eben verschiedene. Die üblichen drei: ANSI, UTF-8, ISO 8859-2

Jetzt ist die Frage, wer benutzt was? Das Formular wird zwar in UTF-8 ausgegeben, aber sind es auch die Zeichen in Deinem PHP-Programm? Sendet der Browser die Eingaben auch in UTF-8? Was macht der Webserver daraus? Usw.

Also alles prüfen:

  • CSS Eintrag "charset" auf utf-8
  • XHTML "encoding" auf utf-8
  • (x)HTML <meta> content-type utf-8
  • (x)HTML- und PHP-Dateien Zeichenformat auf utf-8
  • HTML-Formular <form accept-charset="utf-8"

Slashes

Bei manchen Zeichen sind plötzlich Slashes mit drin. Gerade bei Slashes, Backslashes und Anführungszeichen kann es passieren, dass diese ein Slash davor bekommen. Dies ist meist eine Schutzfunktion von PHP, welche unerfahrene Programmierer davor bewahren soll, bestimmte Zeichen in eine SQL-Datenbank und übernehmen. Denn dort könnten sie eine Menge Schaden anrichten. Diese Funktion, genannt "magic_quotes", betrifft wenn sie eingeschaltet ist, alle Daten die übertragen werden. Also Cookies, POST, GET und so weiter.

Wie befreit man sich davon?

  • Es in der PHP-Konfiguration ausschalten
  • Damit leben und mit der Funktion "stripslashes()" alles rückgängig machen.

Gefahren

Im Umgang mit Daten von außen, ist äußerste Vorsicht geraten. Je nach dem wie mit diesen Daten im Programm gearbeitet wird, könnte dies Tor und Tür öffnen für kriminelle Elemente. Dazu später mehr.