UTF-8 und Formulare

phpameise

Mitglied
Habe meine Site mit Formularen und auch die MySQL Datenbank auf UTF-8 umgestellt. Alles recht schön. Allerdings nutze ich ein gekauftes Login-Script. Das Problem: die agefragten Daten werden richtig angezeigt (mit ü, ö, ä, ß) aber wenn ich Daten im Formular verändere, und update, dann wird alles verändert. Bsp.:
PHP:
mysql_query("UPDATE tblXYZ SET `Strasse` = '$data[Strasse]' 
WHERE id='$_SESSION[user_id]'") or die(mysql_error());
Angezeigt wird erst 'Teststraße', nach dem Update wird 'TeststraÃ' in die Tabelle geschrieben und im Browser wird dann 'TeststraÃ' angezeigt. Ich vermute das Problem in einer Filterfunktion im gekauften Script. Auf der Seite des Formulares wird eine dbc.php mit include geladen und mit 'page_protect();' eine Reihe von Funktionen bereitgestellt.
Unter anderem:
PHP:
function filter($data) {
    $data = trim(htmlentities(strip_tags($data)));
    
    if (get_magic_quotes_gpc())
        $data = stripslashes($data);
    
    $data = mysql_real_escape_string($data);
    
    return $data;
}
Auf der Formularseite wurden die Variablen des Formulares mit:
PHP:
foreach($_POST as $key => $value) {
    $data[$key] = filter($value);
in ein Array gepackt.
Ich habe bereits rausgefunden, dass htmlentities UTF-8 Probleme macht und es durch htmlspecialchars ausgetauscht werden sollte. Stimmt das und wenn ja, wie stelle ich die Filterfunktion in meinem Beispiel um ? Vielen Dank wiedereinmal.
 
Zurück