dedlfix: & MySQL: Sonderzeichen in Formular

Beitrag lesen

echo $begrueszung;

<form action="Gaestebuch.php" method="post" accept-charset="utf-8">

Du nimmst hier Daten UTF-8-kodiert entgegen. PHP arbeitet intern aber (immer noch) nicht mit UTF-8/Unicode.

$text = htmlentities ($text);
$name = htmlentities ($name);

deswegen interpretiert es hier die Zeichen als ISO-8859-1. Im Manual (englische Ausgabe) zu htmlentities ist der dritte Parameter charset beschrieben, den du hier verwenden solltest.

Außerdem empfehlenswert: http://dev.mysql.com/tech-resources/articles/4.1/unicode.html Dieser Artikel bezieht sich zwar auf Unicode-Behandlung in MySQL 4.1, gibt aber auch einige allgemeine Erläuterungen zum Thema.

Das Abspeichern der Daten in für das Ausgabemedium angepasster Form ist generell nicht empfehlenswert. Will man später die Daten an ein anderes Medium ausgeben muss man sie erst wieder zurückwandeln um sie dann für das neue Medium zu kodieren.
Allerdings dürfte der Wunsch, Gästebuchdaten an ein anderes Medium auszugeben, wahrscheinlich nie auftauchen. Es entspricht zwar nicht den Prinzipien der sauberen Datenverarbeitung, schadet aber nicht weiter in deinem Fall.

echo "$verabschiedung $name";